diff --git a/CHANGELOG.md b/CHANGELOG.md index 12fc64ce..597cb56f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Added` - [#109](https://github.com/nf-core/seqinspector/pull/109) Adds ToulligQC module for long read QC -- [#204](https://github.com/nf-core/seqinspector/pull/204) Added Fastp module - [#202](https://github.com/nf-core/seqinspector/pull/202) Added support for fasta fai file as input (via params or igenomes) for the pipeline +- [#204](https://github.com/nf-core/seqinspector/pull/204) Added Fastp module - [#206](https://github.com/nf-core/seqinspector/pull/206) Added FASTQE for more comprehensive QC of FASTQ files - [#208](https://github.com/nf-core/seqinspector/pull/208) Add FASTQ linting for early validation with FQ/LINT - [#210](https://github.com/nf-core/seqinspector/pull/210) Added kraken2 subworkflow +- [#212](https://github.com/nf-core/seqinspector/pull/212) Add CheckQC module ### `Fixed` diff --git a/CITATIONS.md b/CITATIONS.md index 3cd7d601..1862fd85 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -14,6 +14,10 @@ > Vasimuddin Md, Misra S, Li H, Aluru S. Efficient Architecture-Aware Acceleration of BWA-MEM for Multicore Systems. In: 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS). IEEE; 2019:314-324. doi:10.1109/IPDPS.2019.00041 +- [checkQC](https://github.com/Molmed/checkQC) + + > Åslin et al., (2018). CheckQC: Quick quality control of Illumina sequencing runs. Journal of Open Source Software, 3(22), 556, https://doi.org/10.21105/joss.00556 + - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. diff --git a/README.md b/README.md index 700f7db8..1527a4b0 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ If provided, nf-core/seqinspector can also parse statistics from an Illumina run | `Trimming` | [`Fastp`](https://github.com/OpenGene/fastp) | Trimming of reads. Only performs trimming if `--tools` parameter is given. | [RNA, DNA, synthetic] | [N/A] | no | | `Indexing, Mapping` | [`Bwamem2`](https://github.com/bwa-mem2/bwa-mem2) | Align reads to reference | [RNA, DNA] | [N/A] | yes | | `Indexing` | [`SAMtools`](http://github.com/samtools) | Index aligned BAM files, create FASTA index | [DNA] | [N/A] | yes | +| `QC` | [`checkQC`](https://github.com/Molmed/checkQC) | Read QC | [RNA, DNA] | Illumina rundir | no | | `QC` | [`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) | Read QC | [RNA, DNA] | [N/A] | yes | | `QC` | [`FASTQE`](https://fastqe.com/) | Read QC | [RNA, DNA] | [N/A] | yes | | `QC` | [`FastqScreen`](https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen/) | Basic contamination detection | [RNA, DNA] | [N/A] | yes | @@ -60,6 +61,7 @@ If provided, nf-core/seqinspector can also parse statistics from an Illumina run | Tool | Version | | ----------- | ------- | | bwamem2 | 2.3 | +| checkQC | 4.1.0 | | fq/lint | 0.12.0 | | fastp | 1.1.0 | | fastqc | 0.12.1 | diff --git a/assets/checkqc_config.yml b/assets/checkqc_config.yml new file mode 100644 index 00000000..7831ec71 --- /dev/null +++ b/assets/checkqc_config.yml @@ -0,0 +1,791 @@ +# For information about config usage, see http://checkqc.readthedocs.io/en/latest/#configuration-file + +# Use this section to provide configuration options to the parsers +parser_configurations: + StatsJsonParser: + # Path to where the bcl2fastq output (i.e. fastq files, etc) is located relative to + # the runfolder + bcl2fastq_output_path: Data/Intensities/BaseCalls + SamplesheetParser: + samplesheet_name: SampleSheet.csv + from_bclconvert: + reports_location: Reports + +default_view: illumina_data_view + +default_handlers: + - name: UndeterminedPercentageHandler + warning: unknown + error: 9 # <% Phix on lane> + < value as %> + - name: UnidentifiedIndexHandler + significance_threshold: 1 # % of reads in unidentified + # Indexes which are white-listed will only cause a warning even if they occur + # above the significance level. + # They will be matched like regular expressions, + # so e.g. NNN will match exactly three NNNs, while + # N{3,} will match three or more Ns. + white_listed_indexes: + - .*N.* + - G{6,} + +hiseq2500_rapidhighoutput_v4: + 51-71: + handlers: + - name: ClusterPFHandler + warning: 180 # Millons of clusters + error: unknown + - name: Q30Handler + warning: 85 # Give percentage for reads greater than Q30 + error: unknown # Give percentage for reads greater than Q30 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 135 # 75 % of threshold for clusters pass filter + view: illumina_data_view + 100-111: + handlers: + - name: ClusterPFHandler + warning: 180 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 135 + 121-131: + handlers: + - name: ClusterPFHandler + warning: 180 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 135 + +hiseq2500_rapidrun_v2: + 51: + handlers: + - name: ClusterPFHandler + warning: 110 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 82.5 + 101: + handlers: + - name: ClusterPFHandler + warning: 110 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 82.5 + 251: + handlers: + - name: ClusterPFHandler + warning: 110 + error: unknown + - name: Q30Handler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: unknown + error: 5 + - name: ReadsPerSampleHandler + warning: unknown + error: 82.5 + +hiseqx_v2: + 151: + handlers: + - name: ClusterPFHandler + warning: 400 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 300 + +novaseq_SP: + 51: + handlers: + - name: ClusterPFHandler + warning: 325 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 243.75 + 101: + handlers: + - name: ClusterPFHandler + warning: 325 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 243.75 + 151: + handlers: + - name: ClusterPFHandler + warning: 325 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 243.75 + 251: + handlers: + - name: ClusterPFHandler + warning: 325 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 243.75 + +novaseq_S1: + 51: + handlers: + - name: ClusterPFHandler + warning: 650 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 487.5 + 101: + handlers: + - name: ClusterPFHandler + warning: 650 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 487.5 + 151: + handlers: + - name: ClusterPFHandler + warning: 650 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 487.5 + +novaseq_S2: + 51: + handlers: + - name: ClusterPFHandler + warning: 1650 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 1237.5 + 101: + handlers: + - name: ClusterPFHandler + warning: 1650 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 1237.5 + 151: + handlers: + - name: ClusterPFHandler + warning: 1650 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 1237.5 + +novaseq_S4: + 101: + handlers: + - name: ClusterPFHandler + warning: 2000 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 1500 + 151: + handlers: + - name: ClusterPFHandler + warning: 2000 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 1500 + +novaseqxplus_1.5B: + 51: + handlers: + - name: ClusterPFHandler + warning: 800 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 600 + 101: + handlers: + - name: ClusterPFHandler + warning: 800 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 600 + 151: + handlers: + - name: ClusterPFHandler + warning: 800 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 600 + +novaseqxplus_10B: + 51: + handlers: + - name: ClusterPFHandler + warning: 1250 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 937.5 + 101: + handlers: + - name: ClusterPFHandler + warning: 1250 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 937.5 + 151: + handlers: + - name: ClusterPFHandler + warning: 1250 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 937.5 + +novaseqxplus_25B: + 151: + handlers: + - name: ClusterPFHandler + warning: 3250 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 2437.5 + +miseq_nano_v2: + 151: + handlers: + - name: ClusterPFHandler + warning: 1 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + 251: + handlers: + - name: ClusterPFHandler + warning: 1 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + +miseq_micro_v2: + 151: + handlers: + - name: ClusterPFHandler + warning: 4 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + +miseq_v2: + 51: + handlers: + - name: ClusterPFHandler + warning: 10 + error: unknown + - name: Q30Handler + warning: 90 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + 151: + handlers: + - name: ClusterPFHandler + warning: 10 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + 251: + handlers: + - name: ClusterPFHandler + warning: 10 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 7.5 + +miseq_v3: + 76: + handlers: + - name: ClusterPFHandler + warning: 18 + error: unknown + - name: Q30Handler + warning: 85 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 13.5 + 151: + handlers: + - name: ClusterPFHandler + warning: 18 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 2 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 13.5 + 301: + handlers: + - name: ClusterPFHandler + warning: 18 + error: unknown + - name: Q30Handler + warning: 70 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 13.5 + - name: UndeterminedPercentageHandler + warning: unknown + error: 14 # <% Phix on lane> + < value as %> + +iseq_v1: + 151: + handlers: + - name: ClusterPFHandler + warning: 4 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 5 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 3 + +nextseq500_high: + 76: + handlers: + - name: ClusterPFHandler + warning: 100 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 151: + handlers: + - name: ClusterPFHandler + warning: 100 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 301: + handlers: + - name: ClusterPFHandler + warning: 60 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 15 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + +nextseq500_mid: + 76: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 151: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 301: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + +nextseq550_high: + 76: + handlers: + - name: ClusterPFHandler + warning: 100 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 151: + handlers: + - name: ClusterPFHandler + warning: 100 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 301: + handlers: + - name: ClusterPFHandler + warning: 100 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 75 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + +nextseq550_mid: + 76: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 80 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 151: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown + 301: + handlers: + - name: ClusterPFHandler + warning: 32 + error: unknown + - name: Q30Handler + warning: 75 + error: unknown + - name: ReadsPerSampleHandler + warning: unknown + error: 24 + - name: ErrorRateHandler + allow_missing_error_rate: False + warning: 1.5 + error: unknown diff --git a/conf/modules.config b/conf/modules.config index da9ea722..6bf4a705 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -50,7 +50,11 @@ process { ] } - withName: 'TOULLIGQC' { + withName: CHECKQC { + tag = { "${run_dir.simpleName}" } + } + + withName: TOULLIGQC { ext.args = '' publishDir = [[ path: { "${params.outdir}/toulligqc" }, diff --git a/conf/test.config b/conf/test.config index a924ce3d..3b0013cd 100644 --- a/conf/test.config +++ b/conf/test.config @@ -28,4 +28,8 @@ process { memory: '8.GB', time: '1.h' ] + + withName: CHECKQC { + ext.args = '--use-closest-read-length' + } } diff --git a/docs/output.md b/docs/output.md index 08b53d4c..3160aa00 100644 --- a/docs/output.md +++ b/docs/output.md @@ -13,6 +13,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and can generat - [Seqtk](#seqtk) - Subsample a specific number of reads per sample - [FastQC](#fastqc) - Raw read QC - [FASTQE](#fastqe) - Raw read QC +- [CheckQC](#checkqc) - QC of an Illumina run - [Kraken2](#kraken2) - Phylogenetic assignment of reads using k-mers - [Krona](#krona) - Interactive visualization of Kraken2 results - [SeqFu Stats](#seqfu-stats) - Statistics for FASTA or FASTQ files @@ -50,6 +51,16 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and can generat [FastQC](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/) gives general quality metrics about your sequenced reads. It provides information about the quality score distribution across your reads, per base sequence content (%A/T/G/C), adapter contamination and overrepresented sequences. For further reading and documentation see the [FastQC help pages](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/). +### CheckQC + +
+Output files + +- `checkqc/` + - `checkqc_report.json`: Reports sequencing metrics that are not fulfilled. Note that the CheckQC module in MultiQC currently does not support BCL Convert data, so if the report if based on data from that demultiplexer it will not be visualized in the MutliQC report. Results can be found in the output directory. + +
+ ### Kraken2 [Kraken](https://ccb.jhu.edu/software/kraken2/) is a taxonomic sequence classifier that assigns taxonomic labels to DNA sequences. Kraken examines the k-mers within a query sequence and uses the information within those k-mers to query a database. That database maps -mers to the lowest common ancestor (LCA) of all genomes known to contain a given k-mer. diff --git a/docs/usage.md b/docs/usage.md index 81136142..0f1bbbbe 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -168,7 +168,8 @@ It is possible to also chose bundles of pre-specified tools using the `tools_bun Currently, the following bundles are available: -:::info{title="default"}{collapse} +
+default Requirements: @@ -183,9 +184,10 @@ Tools: - rundirparser - seqfu_stats -::: +
-:::info{title="all"}{collapse} +
+all Requirements: @@ -194,6 +196,7 @@ Requirements: Tools: +- checkQC - fastqc - fastqscreen - picard_collecthsmetrics @@ -202,9 +205,10 @@ Tools: - seqfu_stats - toulligqc -::: +
-:::info{title="minimal"}{collapse} +
+minimal Requirements: @@ -216,10 +220,10 @@ Tools: - fastqscreen - picard_collectmultiplemetrics - seqfu_stats +
-::: - -:::info{title="bam"}{collapse} +
+bam Requirements: @@ -230,18 +234,20 @@ Tools: - picard_collecthsmetrics - picard_collectmultiplemetrics -::: +
-:::info{title="fastq"}{collapse} +
+fastq Tools: - fastqc - fastqscreen -::: +
-:::info{title="illumina"}{collapse} +
+illumina Requirements: @@ -249,12 +255,13 @@ Requirements: Tools: +- checkQC - rundirparser - seqfu_stats +
-::: - -:::info{title="ont"}{collapse} +
+ont Tools: @@ -263,7 +270,7 @@ Tools: - seqfu_stats - toulligqc -::: +
### Available functionality and tools diff --git a/main.nf b/main.nf index 2fb26f43..3d29e640 100644 --- a/main.nf +++ b/main.nf @@ -138,6 +138,7 @@ workflow NFCORE_SEQINSPECTOR { samplesheet, params.bait_intervals, bwamem2, + params.checkqc_config, fasta, params.fastq_screen_references, params.multiqc_config, diff --git a/modules.json b/modules.json index 25634600..8ef26bfa 100644 --- a/modules.json +++ b/modules.json @@ -15,6 +15,11 @@ "git_sha": "8325a8155a77a336a613a504b8e4d6cea7a2344a", "installed_by": ["modules"] }, + "checkqc": { + "branch": "master", + "git_sha": "389ed64090aa4594276fb3d53923432c7728c5b4", + "installed_by": ["modules"] + }, "fastp": { "branch": "master", "git_sha": "1fb5a73bce8e4ac7079b0a9461b23d11e877ad14", diff --git a/modules/nf-core/checkqc/environment.yml b/modules/nf-core/checkqc/environment.yml new file mode 100644 index 00000000..e9be6540 --- /dev/null +++ b/modules/nf-core/checkqc/environment.yml @@ -0,0 +1,16 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::sample-sheet=0.13.0 + - conda-forge::numpy=2.2.4 + - conda-forge::pandas=2.2.2 + - conda-forge::pip=25.2 + - conda-forge::python=3.10.19 + - conda-forge::tornado=6.3.2 + - conda-forge::xmltodict=0.13.0 + - pip: + - checkQC==4.1.0 + - interop==1.4.0 + - jsonschema==4.26.0 + - samshee==0.2.12 diff --git a/modules/nf-core/checkqc/main.nf b/modules/nf-core/checkqc/main.nf new file mode 100644 index 00000000..fc39ee0d --- /dev/null +++ b/modules/nf-core/checkqc/main.nf @@ -0,0 +1,76 @@ +process CHECKQC { + tag "$meta.id" + label 'process_single' + + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/6e/6ec3d6e7260c79ecd92ff53e66337a8f1db4ca8d0a3ba561c35f21fa9acdd6ba/data': + 'community.wave.seqera.io/library/sample-sheet_numpy_pandas_pip_pruned:0b9dc0869e46a949' }" + + input: + tuple val(meta), path(run_dir) + path(checkqc_config) + + output: + tuple val(meta), path("*checkqc_report.json"), emit: report + tuple val("${task.process}"), val('checkqc'), eval('checkqc --version | sed -e "s/checkqc, version //g"'), emit: versions_checkqc, topic: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "CheckQC module does not support Conda yet. Please use Docker / Singularity / Podman instead." + } + + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def args3 = task.ext.args3 ?: '' + def config = checkqc_config ? "--config $checkqc_config" : '' + def input_tar = run_dir.toString().endsWith(".tar.gz") ? true : false + def input_dir = input_tar ? run_dir.toString() - '.tar.gz' : run_dir + + """ + if [ ! -d ${input_dir} ]; then + mkdir -p ${input_dir} + fi + + if ${input_tar}; then + ## Ensures --strip-components only applied when top level of tar contents is a directory + ## If just files or multiple directories, place all in ${input_dir} + + if [[ \$(tar -taf ${run_dir} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then + tar \\ + -C ${input_dir} --strip-components 1 \\ + -xavf \\ + ${args2} \\ + ${run_dir} \\ + ${args3} + else + tar \\ + -C ${input_dir} \\ + -xavf \\ + ${args2} \\ + ${run_dir} \\ + ${args3} + fi + fi + + checkqc \ + $args \ + $config \ + --json \ + $input_dir > checkqc_report.json || true + + # Check if the output JSON file is empty + if [[ ! -s checkqc_report.json ]] ; then + echo "Error: Empty JSON files. Most likely due to missing files in run directory. See .command.log file for errors." + exit 1 + fi + """ + + stub: + """ + touch checkqc_report.json + """ +} diff --git a/modules/nf-core/checkqc/meta.yml b/modules/nf-core/checkqc/meta.yml new file mode 100644 index 00000000..d979c0d1 --- /dev/null +++ b/modules/nf-core/checkqc/meta.yml @@ -0,0 +1,72 @@ +name: "checkqc" +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." + homepage: "https://github.com/Molmed/checkQC" + documentation: "http://checkqc.readthedocs.io/en/latest/" + doi: "10.21105/joss.00556" + licence: + - "GPL v3" + identifier: "" +input: + - - 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 + ontologies: [] + - checkqc_config: + type: file + description: CheckQC configuration file + pattern: "*.{yml,yaml}" + ontologies: + - edam: http://edamontology.org/format_3750 +output: + report: + - - meta: + type: file + description: CheckQC report in json format + pattern: "*checkqc_report.json" + ontologies: + - edam: http://edamontology.org/format_3464 + - "*checkqc_report.json": + type: file + description: CheckQC report in json format + pattern: "*checkqc_report.json" + ontologies: + - edam: http://edamontology.org/format_3464 + versions_checkqc: + - - ${task.process}: + type: string + description: The name of the process + - checkqc: + type: string + description: The name of the tool + - 'checkqc --version | sed -e "s/checkqc, version //g"': + type: eval + description: The expression to obtain the version of the tool +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - checkqc: + type: string + description: The name of the tool + - 'checkqc --version | sed -e "s/checkqc, version //g"': + type: eval + description: The expression to obtain the version of the tool +authors: + - "@matrulda" diff --git a/nextflow.config b/nextflow.config index b2708988..fc84962c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -22,6 +22,9 @@ params { igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false + // CheckQC options + checkqc_config = null + // Fastqscreen options fastq_screen_references = "${projectDir}/assets/example_fastq_screen_references.csv" diff --git a/nextflow_schema.json b/nextflow_schema.json index 8d2dfce8..dc82098c 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -51,19 +51,20 @@ "tools": { "type": "string", "description": "Comma-separated string of tools to run", - "pattern": "^((fastp|fastqc|fastqe|fastqscreen|fq_lint|kraken2|picard_collecthsmetrics|picard_collectmultiplemetrics|rundirparser|seqfu_stats|toulligqc)?,?)*(? PREPARE_GENOME:SAMTOOLS_FAIDX (genome.fa)" ] ], - "timestamp": "2026-03-13T15:53:03.277536715", + "timestamp": "2026-03-16T09:53:50.996018165", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -2070,7 +2069,7 @@ "timestamp": "2026-03-13T15:54:08.436701914", "meta": { "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nextflow": "25.10.2" } }, "NovaSeq6000 data test relative sample size": { @@ -3073,7 +3072,7 @@ "timestamp": "2026-03-13T15:55:15.892319993", "meta": { "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nextflow": "25.10.2" } }, "NovaSeq6000 data test - No rundirs": { @@ -4037,7 +4036,7 @@ "timestamp": "2026-03-13T15:57:07.115797171", "meta": { "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nextflow": "25.10.2" } }, "NovaSeq6000 data test sample size exceeds available reads": { @@ -5046,7 +5045,7 @@ "timestamp": "2026-03-13T15:56:14.759821206", "meta": { "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nextflow": "25.10.2" } }, "NovaSeq6000 data test - tag collision": { @@ -5837,7 +5836,7 @@ "timestamp": "2026-03-13T15:57:49.731500962", "meta": { "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nextflow": "25.10.2" } } } \ No newline at end of file diff --git a/tests/tools_checkqc.nf.test b/tests/tools_checkqc.nf.test new file mode 100644 index 00000000..07a1b024 --- /dev/null +++ b/tests/tools_checkqc.nf.test @@ -0,0 +1,31 @@ +def pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' +def projectDir = new File('.').absolutePath + +nextflow_pipeline { + + name "Test pipeline" + script "../main.nf" + + def test_scenario = [ + [ + name: "NovaSeq6000 data test - checkqc", + params: [ + tools: 'checkqc', + tools_bundle: null + ] + ], + [ + name: "NovaSeq6000 data test - checkqc with config", + params: [ + checkqc_config: "$projectDir/assets/checkqc_config.yml", + tools: 'checkqc', + tools_bundle: null + ] + ] + ] + + // Generate tests for each scenario + test_scenario.each { scenario -> + test(scenario.name, UTILS.getTest(scenario)) + } +} diff --git a/tests/tools_checkqc.nf.test.snap b/tests/tools_checkqc.nf.test.snap new file mode 100644 index 00000000..85547f6e --- /dev/null +++ b/tests/tools_checkqc.nf.test.snap @@ -0,0 +1,308 @@ +{ + "NovaSeq6000 data test - checkqc": { + "content": [ + 6, + { + "CHECKQC": { + "checkqc": "4.1.0" + } + }, + [ + "checkqc", + "checkqc/checkqc_report.json", + "multiqc", + "multiqc/global_report", + "multiqc/global_report/multiqc_data", + "multiqc/global_report/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", + "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", + "multiqc/global_report/multiqc_data/multiqc_checkqc.txt", + "multiqc/global_report/multiqc_data/multiqc_citations.txt", + "multiqc/global_report/multiqc_data/multiqc_data.json", + "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", + "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_plots", + "multiqc/global_report/multiqc_plots/pdf", + "multiqc/global_report/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/global_report/multiqc_plots/png", + "multiqc/global_report/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/global_report/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/global_report/multiqc_plots/svg", + "multiqc/global_report/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/global_report/multiqc_report.html", + "multiqc/group_reports", + "multiqc/group_reports/group1", + "multiqc/group_reports/group1/multiqc_data", + "multiqc/group_reports/group1/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/group1/multiqc_data/llms-full.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc.log", + "multiqc/group_reports/group1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group1/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group1/multiqc_plots", + "multiqc/group_reports/group1/multiqc_plots/pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/png", + "multiqc/group_reports/group1/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/svg", + "multiqc/group_reports/group1/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/group1/multiqc_report.html", + "multiqc/group_reports/group2", + "multiqc/group_reports/group2/multiqc_data", + "multiqc/group_reports/group2/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/group2/multiqc_data/llms-full.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc.log", + "multiqc/group_reports/group2/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group2/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group2/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group2/multiqc_plots", + "multiqc/group_reports/group2/multiqc_plots/pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/png", + "multiqc/group_reports/group2/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/svg", + "multiqc/group_reports/group2/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/group2/multiqc_report.html", + "multiqc/group_reports/lane1", + "multiqc/group_reports/lane1/multiqc_data", + "multiqc/group_reports/lane1/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/lane1/multiqc_data/llms-full.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc.log", + "multiqc/group_reports/lane1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/lane1/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/lane1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/lane1/multiqc_plots", + "multiqc/group_reports/lane1/multiqc_plots/pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/png", + "multiqc/group_reports/lane1/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_report.html", + "multiqc/group_reports/test", + "multiqc/group_reports/test/multiqc_data", + "multiqc/group_reports/test/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/test/multiqc_data/llms-full.txt", + "multiqc/group_reports/test/multiqc_data/multiqc.log", + "multiqc/group_reports/test/multiqc_data/multiqc.parquet", + "multiqc/group_reports/test/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_data.json", + "multiqc/group_reports/test/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/test/multiqc_plots", + "multiqc/group_reports/test/multiqc_plots/pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/png", + "multiqc/group_reports/test/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/svg", + "multiqc/group_reports/test/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/test/multiqc_report.html", + "pipeline_info", + "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml" + ], + [ + "checkqc_report.json:md5,8245b6a8b8e0e2d247cb7a151d53612f", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18" + ], + "No BAM files", + "No warnings" + ], + "timestamp": "2026-03-16T09:42:19.096152642", + "meta": { + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } + }, + "NovaSeq6000 data test - checkqc with config": { + "content": [ + 6, + { + "CHECKQC": { + "checkqc": "4.1.0" + } + }, + [ + "checkqc", + "checkqc/checkqc_report.json", + "multiqc", + "multiqc/global_report", + "multiqc/global_report/multiqc_data", + "multiqc/global_report/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", + "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", + "multiqc/global_report/multiqc_data/multiqc_checkqc.txt", + "multiqc/global_report/multiqc_data/multiqc_citations.txt", + "multiqc/global_report/multiqc_data/multiqc_data.json", + "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", + "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_plots", + "multiqc/global_report/multiqc_plots/pdf", + "multiqc/global_report/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/global_report/multiqc_plots/png", + "multiqc/global_report/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/global_report/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/global_report/multiqc_plots/svg", + "multiqc/global_report/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/global_report/multiqc_report.html", + "multiqc/group_reports", + "multiqc/group_reports/group1", + "multiqc/group_reports/group1/multiqc_data", + "multiqc/group_reports/group1/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/group1/multiqc_data/llms-full.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc.log", + "multiqc/group_reports/group1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group1/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group1/multiqc_plots", + "multiqc/group_reports/group1/multiqc_plots/pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/png", + "multiqc/group_reports/group1/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/svg", + "multiqc/group_reports/group1/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/group1/multiqc_report.html", + "multiqc/group_reports/group2", + "multiqc/group_reports/group2/multiqc_data", + "multiqc/group_reports/group2/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/group2/multiqc_data/llms-full.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc.log", + "multiqc/group_reports/group2/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group2/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group2/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group2/multiqc_plots", + "multiqc/group_reports/group2/multiqc_plots/pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/png", + "multiqc/group_reports/group2/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/svg", + "multiqc/group_reports/group2/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/group2/multiqc_report.html", + "multiqc/group_reports/lane1", + "multiqc/group_reports/lane1/multiqc_data", + "multiqc/group_reports/lane1/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/lane1/multiqc_data/llms-full.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc.log", + "multiqc/group_reports/lane1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/lane1/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/lane1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/lane1/multiqc_plots", + "multiqc/group_reports/lane1/multiqc_plots/pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/png", + "multiqc/group_reports/lane1/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_report.html", + "multiqc/group_reports/test", + "multiqc/group_reports/test/multiqc_data", + "multiqc/group_reports/test/multiqc_data/checkqc_reads-per-sample-plot.txt", + "multiqc/group_reports/test/multiqc_data/llms-full.txt", + "multiqc/group_reports/test/multiqc_data/multiqc.log", + "multiqc/group_reports/test/multiqc_data/multiqc.parquet", + "multiqc/group_reports/test/multiqc_data/multiqc_checkqc.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_data.json", + "multiqc/group_reports/test/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/test/multiqc_plots", + "multiqc/group_reports/test/multiqc_plots/pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/checkqc_reads-per-sample-plot-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/checkqc_reads-per-sample-plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/png", + "multiqc/group_reports/test/multiqc_plots/png/checkqc_reads-per-sample-plot-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/checkqc_reads-per-sample-plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/svg", + "multiqc/group_reports/test/multiqc_plots/svg/checkqc_reads-per-sample-plot-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/checkqc_reads-per-sample-plot-pct.svg", + "multiqc/group_reports/test/multiqc_report.html", + "pipeline_info", + "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml" + ], + [ + "checkqc_report.json:md5,8245b6a8b8e0e2d247cb7a151d53612f", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18", + "checkqc_reads-per-sample-plot.txt:md5,32ac72d463abb6df384d43041965b167", + "multiqc_checkqc.txt:md5,f2690f77b441c21eeea435c6f8630902", + "multiqc_citations.txt:md5,2f5fc28069c07e52fdef3d6d25464b18" + ], + "No BAM files", + "No warnings" + ], + "timestamp": "2026-03-16T09:52:01.65763035", + "meta": { + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } + } +} \ No newline at end of file diff --git a/tests/tools_fq_lint.nf.test b/tests/tools_fq_lint.nf.test index b13a5432..80cd4a40 100644 --- a/tests/tools_fq_lint.nf.test +++ b/tests/tools_fq_lint.nf.test @@ -11,6 +11,8 @@ nextflow_pipeline { params: [ input: pipelines_testdata_base_path + 'seqinspector/testdata/NovaSeq6000/samplesheet_wrongpair.csv', continue_with_lint_fail: true, + tools: 'fq_lint', + tools_bundle: null ] ], [ @@ -18,6 +20,8 @@ nextflow_pipeline { params: [ input: pipelines_testdata_base_path + 'seqinspector/testdata/NovaSeq6000/samplesheet_wrongpair.csv', continue_with_lint_fail: false, + tools: 'fq_lint', + tools_bundle: null ], snapshot_ignore:['Failed','exception'], failure:true @@ -26,6 +30,8 @@ nextflow_pipeline { name: "NovaSeq6000 data test - args for fq/lint", params: [ fq_lint_args: '--disable-validator P001', + tools: 'fq_lint', + tools_bundle: null ] ] ] diff --git a/tests/tools_fq_lint.nf.test.snap b/tests/tools_fq_lint.nf.test.snap index de1fa6d1..50dfbd55 100644 --- a/tests/tools_fq_lint.nf.test.snap +++ b/tests/tools_fq_lint.nf.test.snap @@ -1,988 +1,27 @@ { "NovaSeq6000 data test - args for fq/lint": { "content": [ - 43, + 5, { - "BWAMEM2_INDEX": { - "bwamem2": "2.2.1" - }, - "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" - }, - "FASTQC": { - "fastqc": "0.12.1" - }, - "FASTQSCREEN_FASTQSCREEN": { - "fastqscreen": "0.16.0" - }, "FQ_LINT": { "fq": "0.12.0" - }, - "PICARD_COLLECTMULTIPLEMETRICS": { - "picard": "3.4.0" - }, - "RUNDIRPARSER": { - "PyYAML": "6.0.2", - "Python": "3.13.2" - }, - "SAMTOOLS_FAIDX": { - "samtools": "1.23" - }, - "SAMTOOLS_INDEX": { - "samtools": "1.23" - }, - "SEQFU_STATS": { - "seqfu": "1.22.3" } }, [ - "bwamem2_index", - "bwamem2_index/bwamem2", - "bwamem2_index/bwamem2/genome.fa.0123", - "bwamem2_index/bwamem2/genome.fa.amb", - "bwamem2_index/bwamem2/genome.fa.ann", - "bwamem2_index/bwamem2/genome.fa.bwt.2bit.64", - "bwamem2_index/bwamem2/genome.fa.pac", - "bwamem2_mem", - "bwamem2_mem/Sample1_01.bam", - "bwamem2_mem/Sample1_01.bam.bai", - "bwamem2_mem/Sample23_03.bam", - "bwamem2_mem/Sample23_03.bam.bai", - "bwamem2_mem/SampleA_02.bam", - "bwamem2_mem/SampleA_02.bam.bai", - "bwamem2_mem/Undetermined_05.bam", - "bwamem2_mem/Undetermined_05.bam.bai", - "bwamem2_mem/sampletest_04.bam", - "bwamem2_mem/sampletest_04.bam.bai", - "fastqc", - "fastqc/Sample1_01_fastqc.html", - "fastqc/Sample1_01_fastqc.zip", - "fastqc/Sample23_03_fastqc.html", - "fastqc/Sample23_03_fastqc.zip", - "fastqc/SampleA_02_fastqc.html", - "fastqc/SampleA_02_fastqc.zip", - "fastqc/Undetermined_05_fastqc.html", - "fastqc/Undetermined_05_fastqc.zip", - "fastqc/sampletest_04_fastqc.html", - "fastqc/sampletest_04_fastqc.zip", - "fastqscreen", - "fastqscreen/Sample1_01_screen.html", - "fastqscreen/Sample1_01_screen.png", - "fastqscreen/Sample1_01_screen.txt", - "fastqscreen/Sample23_03_screen.html", - "fastqscreen/Sample23_03_screen.png", - "fastqscreen/Sample23_03_screen.txt", - "fastqscreen/SampleA_02_screen.html", - "fastqscreen/SampleA_02_screen.png", - "fastqscreen/SampleA_02_screen.txt", - "fastqscreen/Undetermined_05_screen.html", - "fastqscreen/Undetermined_05_screen.png", - "fastqscreen/Undetermined_05_screen.txt", - "fastqscreen/sampletest_04_screen.html", - "fastqscreen/sampletest_04_screen.png", - "fastqscreen/sampletest_04_screen.txt", "fq", "fq/Sample1_01.fq_lint.txt", "fq/Sample23_03.fq_lint.txt", "fq/SampleA_02.fq_lint.txt", "fq/Undetermined_05.fq_lint.txt", "fq/sampletest_04.fq_lint.txt", - "multiqc", - "multiqc/global_report", - "multiqc/global_report/multiqc_data", - "multiqc/global_report/multiqc_data/fastq_screen_plot.txt", - "multiqc/global_report/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/global_report/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/global_report/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/global_report/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/global_report/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/global_report/multiqc_data/llms-full.txt", - "multiqc/global_report/multiqc_data/multiqc.log", - "multiqc/global_report/multiqc_data/multiqc.parquet", - "multiqc/global_report/multiqc_data/multiqc_citations.txt", - "multiqc/global_report/multiqc_data/multiqc_data.json", - "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", - "multiqc/global_report/multiqc_data/multiqc_fastqc.txt", - "multiqc/global_report/multiqc_data/multiqc_general_stats.txt", - "multiqc/global_report/multiqc_data/multiqc_mqc_seq_metadata.txt", - "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", - "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", - "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", - "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", - "multiqc/global_report/multiqc_data/multiqc_seqfu_mqc.txt", - "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", - "multiqc/global_report/multiqc_data/multiqc_sources.txt", - "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", - "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", - "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", - "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", - "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", - "multiqc/global_report/multiqc_data/picard_alignment_summary.txt", - "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", - "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", - "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", - "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", - "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", - "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", - "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", - "multiqc/global_report/multiqc_plots", - "multiqc/global_report/multiqc_plots/pdf", - "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/global_report/multiqc_plots/pdf/mqc_seq_metadata.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", - "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", - "multiqc/global_report/multiqc_plots/pdf/seqfu_mqc.pdf", - "multiqc/global_report/multiqc_plots/png", - "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", - "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/global_report/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/global_report/multiqc_plots/png/mqc_seq_metadata.png", - "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", - "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-cnt.png", - "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-pct.png", - "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", - "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", - "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", - "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", - "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", - "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", - "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", - "multiqc/global_report/multiqc_plots/png/seqfu_mqc.png", - "multiqc/global_report/multiqc_plots/svg", - "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", - "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/global_report/multiqc_plots/svg/mqc_seq_metadata.svg", - "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", - "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-cnt.svg", - "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-pct.svg", - "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", - "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", - "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", - "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", - "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", - "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", - "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", - "multiqc/global_report/multiqc_plots/svg/seqfu_mqc.svg", - "multiqc/global_report/multiqc_report.html", - "multiqc/group_reports", - "multiqc/group_reports/group1", - "multiqc/group_reports/group1/multiqc_data", - "multiqc/group_reports/group1/multiqc_data/fastq_screen_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/group_reports/group1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/group_reports/group1/multiqc_data/llms-full.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc.log", - "multiqc/group_reports/group1/multiqc_data/multiqc.parquet", - "multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_data.json", - "multiqc/group_reports/group1/multiqc_data/multiqc_fastq_screen.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_fastqc.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_general_stats.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_mqc_seq_metadata.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_picard_baseContent.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_by_cycle.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_score_distribution.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_seqfu_mqc.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_software_versions.txt", - "multiqc/group_reports/group1/multiqc_data/multiqc_sources.txt", - "multiqc/group_reports/group1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", - "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", - "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", - "multiqc/group_reports/group1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", - "multiqc/group_reports/group1/multiqc_data/picard_alignment_readlength_plot.txt", - "multiqc/group_reports/group1/multiqc_data/picard_alignment_summary.txt", - "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", - "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", - "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", - "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", - "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", - "multiqc/group_reports/group1/multiqc_data/picard_quality_by_cycle.txt", - "multiqc/group_reports/group1/multiqc_data/picard_quality_score_distribution.txt", - "multiqc/group_reports/group1/multiqc_plots", - "multiqc/group_reports/group1/multiqc_plots/pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/mqc_seq_metadata.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/seqfu_mqc.pdf", - "multiqc/group_reports/group1/multiqc_plots/png", - "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/group1/multiqc_plots/png/mqc_seq_metadata.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_readlength_plot.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-cnt.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-pct.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_by_cycle.png", - "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_score_distribution.png", - "multiqc/group_reports/group1/multiqc_plots/png/seqfu_mqc.png", - "multiqc/group_reports/group1/multiqc_plots/svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/mqc_seq_metadata.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-pct.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_by_cycle.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_score_distribution.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/seqfu_mqc.svg", - "multiqc/group_reports/group1/multiqc_report.html", - "multiqc/group_reports/group2", - "multiqc/group_reports/group2/multiqc_data", - "multiqc/group_reports/group2/multiqc_data/fastq_screen_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/group_reports/group2/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/group_reports/group2/multiqc_data/llms-full.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc.log", - "multiqc/group_reports/group2/multiqc_data/multiqc.parquet", - "multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_data.json", - "multiqc/group_reports/group2/multiqc_data/multiqc_fastq_screen.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_fastqc.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_general_stats.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_mqc_seq_metadata.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_picard_baseContent.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_by_cycle.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_score_distribution.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_seqfu_mqc.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_software_versions.txt", - "multiqc/group_reports/group2/multiqc_data/multiqc_sources.txt", - "multiqc/group_reports/group2/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", - "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram.txt", - "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", - "multiqc/group_reports/group2/multiqc_data/picard_QualityScoreDistribution_histogram.txt", - "multiqc/group_reports/group2/multiqc_data/picard_alignment_readlength_plot.txt", - "multiqc/group_reports/group2/multiqc_data/picard_alignment_summary.txt", - "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", - "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", - "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", - "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", - "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", - "multiqc/group_reports/group2/multiqc_data/picard_quality_by_cycle.txt", - "multiqc/group_reports/group2/multiqc_data/picard_quality_score_distribution.txt", - "multiqc/group_reports/group2/multiqc_plots", - "multiqc/group_reports/group2/multiqc_plots/pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/mqc_seq_metadata.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_by_cycle.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_score_distribution.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/seqfu_mqc.pdf", - "multiqc/group_reports/group2/multiqc_plots/png", - "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/group2/multiqc_plots/png/mqc_seq_metadata.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_readlength_plot.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-cnt.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-pct.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_by_cycle.png", - "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_score_distribution.png", - "multiqc/group_reports/group2/multiqc_plots/png/seqfu_mqc.png", - "multiqc/group_reports/group2/multiqc_plots/svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/mqc_seq_metadata.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_readlength_plot.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-cnt.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-pct.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_by_cycle.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_score_distribution.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/seqfu_mqc.svg", - "multiqc/group_reports/group2/multiqc_report.html", - "multiqc/group_reports/lane1", - "multiqc/group_reports/lane1/multiqc_data", - "multiqc/group_reports/lane1/multiqc_data/fastq_screen_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/group_reports/lane1/multiqc_data/llms-full.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc.log", - "multiqc/group_reports/lane1/multiqc_data/multiqc.parquet", - "multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_data.json", - "multiqc/group_reports/lane1/multiqc_data/multiqc_fastq_screen.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_fastqc.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_general_stats.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_mqc_seq_metadata.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_baseContent.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_by_cycle.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_score_distribution.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_seqfu_mqc.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_software_versions.txt", - "multiqc/group_reports/lane1/multiqc_data/multiqc_sources.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_alignment_readlength_plot.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_alignment_summary.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_quality_by_cycle.txt", - "multiqc/group_reports/lane1/multiqc_data/picard_quality_score_distribution.txt", - "multiqc/group_reports/lane1/multiqc_plots", - "multiqc/group_reports/lane1/multiqc_plots/pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/mqc_seq_metadata.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/seqfu_mqc.pdf", - "multiqc/group_reports/lane1/multiqc_plots/png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/lane1/multiqc_plots/png/mqc_seq_metadata.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_readlength_plot.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-cnt.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-pct.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_by_cycle.png", - "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_score_distribution.png", - "multiqc/group_reports/lane1/multiqc_plots/png/seqfu_mqc.png", - "multiqc/group_reports/lane1/multiqc_plots/svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/mqc_seq_metadata.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-pct.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_by_cycle.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_score_distribution.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/seqfu_mqc.svg", - "multiqc/group_reports/lane1/multiqc_report.html", - "multiqc/group_reports/test", - "multiqc/group_reports/test/multiqc_data", - "multiqc/group_reports/test/multiqc_data/fastq_screen_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/group_reports/test/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/group_reports/test/multiqc_data/llms-full.txt", - "multiqc/group_reports/test/multiqc_data/multiqc.log", - "multiqc/group_reports/test/multiqc_data/multiqc.parquet", - "multiqc/group_reports/test/multiqc_data/multiqc_citations.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_data.json", - "multiqc/group_reports/test/multiqc_data/multiqc_fastq_screen.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_fastqc.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_general_stats.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_mqc_seq_metadata.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_picard_baseContent.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_by_cycle.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_score_distribution.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_seqfu_mqc.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_software_versions.txt", - "multiqc/group_reports/test/multiqc_data/multiqc_sources.txt", - "multiqc/group_reports/test/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", - "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram.txt", - "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", - "multiqc/group_reports/test/multiqc_data/picard_QualityScoreDistribution_histogram.txt", - "multiqc/group_reports/test/multiqc_data/picard_alignment_readlength_plot.txt", - "multiqc/group_reports/test/multiqc_data/picard_alignment_summary.txt", - "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", - "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", - "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", - "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", - "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", - "multiqc/group_reports/test/multiqc_data/picard_quality_by_cycle.txt", - "multiqc/group_reports/test/multiqc_data/picard_quality_score_distribution.txt", - "multiqc/group_reports/test/multiqc_plots", - "multiqc/group_reports/test/multiqc_plots/pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/mqc_seq_metadata.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_by_cycle.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_score_distribution.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/seqfu_mqc.pdf", - "multiqc/group_reports/test/multiqc_plots/png", - "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", - "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/test/multiqc_plots/png/mqc_seq_metadata.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_readlength_plot.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-cnt.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-pct.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_quality_by_cycle.png", - "multiqc/group_reports/test/multiqc_plots/png/picard_quality_score_distribution.png", - "multiqc/group_reports/test/multiqc_plots/png/seqfu_mqc.png", - "multiqc/group_reports/test/multiqc_plots/svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/test/multiqc_plots/svg/mqc_seq_metadata.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_readlength_plot.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-cnt.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-pct.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_by_cycle.svg", - "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_score_distribution.svg", - "multiqc/group_reports/test/multiqc_plots/svg/seqfu_mqc.svg", - "multiqc/group_reports/test/multiqc_report.html", - "picard_collectmultiplemetrics", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.alignment_summary_metrics", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.base_distribution_by_cycle.pdf", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.base_distribution_by_cycle_metrics", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.quality_by_cycle.pdf", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.quality_by_cycle_metrics", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.quality_distribution.pdf", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.quality_distribution_metrics", - "picard_collectmultiplemetrics/Sample1_01.CollectMultipleMetrics.read_length_histogram.pdf", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.alignment_summary_metrics", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.base_distribution_by_cycle.pdf", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.base_distribution_by_cycle_metrics", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.quality_by_cycle.pdf", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.quality_by_cycle_metrics", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.quality_distribution.pdf", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.quality_distribution_metrics", - "picard_collectmultiplemetrics/Sample23_03.CollectMultipleMetrics.read_length_histogram.pdf", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.alignment_summary_metrics", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.base_distribution_by_cycle.pdf", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.base_distribution_by_cycle_metrics", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.quality_by_cycle.pdf", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.quality_by_cycle_metrics", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.quality_distribution.pdf", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.quality_distribution_metrics", - "picard_collectmultiplemetrics/SampleA_02.CollectMultipleMetrics.read_length_histogram.pdf", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.alignment_summary_metrics", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.base_distribution_by_cycle.pdf", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.base_distribution_by_cycle_metrics", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.quality_by_cycle.pdf", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.quality_by_cycle_metrics", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.quality_distribution.pdf", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.quality_distribution_metrics", - "picard_collectmultiplemetrics/Undetermined_05.CollectMultipleMetrics.read_length_histogram.pdf", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.alignment_summary_metrics", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.base_distribution_by_cycle.pdf", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.base_distribution_by_cycle_metrics", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.quality_by_cycle.pdf", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.quality_by_cycle_metrics", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.quality_distribution.pdf", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.quality_distribution_metrics", - "picard_collectmultiplemetrics/sampletest_04.CollectMultipleMetrics.read_length_histogram.pdf", "pipeline_info", - "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", - "rundirparser", - "rundirparser/200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml", - "samtools_faidx", - "samtools_faidx/genome.fa.fai", - "seqfu_stats", - "seqfu_stats/Sample1_01_seqfu.tsv", - "seqfu_stats/Sample1_01_seqfu_mqc.txt", - "seqfu_stats/Sample23_03_seqfu.tsv", - "seqfu_stats/Sample23_03_seqfu_mqc.txt", - "seqfu_stats/SampleA_02_seqfu.tsv", - "seqfu_stats/SampleA_02_seqfu_mqc.txt", - "seqfu_stats/Undetermined_05_seqfu.tsv", - "seqfu_stats/Undetermined_05_seqfu_mqc.txt", - "seqfu_stats/sampletest_04_seqfu.tsv", - "seqfu_stats/sampletest_04_seqfu_mqc.txt" - ], - [ - "genome.fa.0123:md5,8af61f4bc59cc2fe7b396db46a2173f3", - "genome.fa.amb:md5,657cfdf0628d140d645d8d01a24f0c5f", - "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", - "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", - "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "Sample1_01_screen.png:md5,562256290643b51e4374c2225a15f463", - "Sample1_01_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", - "Sample23_03_screen.png:md5,6bb2caf67b9b2ed25d3d5f32c343e9ab", - "Sample23_03_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", - "SampleA_02_screen.png:md5,b2c3e95e034f5c038754bf108537de0e", - "SampleA_02_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", - "Undetermined_05_screen.png:md5,fc5d53f8876dfae3d1a781fa512ea1db", - "Undetermined_05_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", - "sampletest_04_screen.png:md5,1fb60070e8f4b70de0c1b3786b54f27e", - "sampletest_04_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", - "fastq_screen_plot.txt:md5,990122d48fa4c1a170107a1ba034e4cf", - "fastqc-status-check-heatmap.txt:md5,7a64380ec42aac56949a2d9a4176d4d9", - "fastqc_overrepresented_sequences_plot.txt:md5,c7908980f1dba22b45cf6de14a66a686", - "fastqc_per_base_n_content_plot.txt:md5,8aafe701b59b4e70ccec86748c7d6eb3", - "fastqc_per_base_sequence_quality_plot.txt:md5,c2bbc52a285a46ab8c548bca3b721e13", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,a422f61a00f0839ef0d630d2e4524589", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,0e5a0cd0b0f8e66b3617f1ac19822d77", - "fastqc_per_sequence_quality_scores_plot.txt:md5,cbaa7c7033c526483584376275a8b33e", - "fastqc_sequence_counts_plot.txt:md5,d8ab86dbfce0c740f4a66a080803a0b9", - "fastqc_sequence_duplication_levels_plot.txt:md5,f86012b3074d697c9a2b3bd67a074288", - "fastqc_sequence_length_distribution_plot.txt:md5,9d4fd245e8e1d5baa473a8bdffcd3e38", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastq_screen.txt:md5,62240561100f78af37e7e2438cb58f90", - "multiqc_fastqc.txt:md5,23b698f1e957a26f49a9ad9bbdece908", - "multiqc_mqc_seq_metadata.txt:md5,5c5f63f044bdcb1ab74a66b896f0b6e7", - "multiqc_picard_AlignmentSummaryMetrics.txt:md5,b113ea40790fa45fa739f224f2710556", - "multiqc_picard_baseContent.txt:md5,e06c0dea80cb5cef312436e005aa0095", - "multiqc_picard_quality_by_cycle.txt:md5,6e13ddbd97caa0eaa52c118966e5f9fa", - "multiqc_picard_quality_score_distribution.txt:md5,39d3430744e9139020d7af3eb15fc629", - "multiqc_seqfu_mqc.txt:md5,18dd2407d4a1791646785123028f69b5", - "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram_1.txt:md5,6e13ddbd97caa0eaa52c118966e5f9fa", - "picard_QualityScoreDistribution_histogram.txt:md5,39d3430744e9139020d7af3eb15fc629", - "picard_alignment_readlength_plot.txt:md5,57ee2de637b69efc49290bb5d4b57905", - "picard_alignment_summary.txt:md5,3fee23a738a44ee84592cb1144b32775", - "picard_base_distribution_by_cycle__Adenine.txt:md5,dfb9e50700b61cdbc0344690db202559", - "picard_base_distribution_by_cycle__Cytosine.txt:md5,5eec2a9bbb5db321c7cbbbee26d90357", - "picard_base_distribution_by_cycle__Guanine.txt:md5,5b100b42e93792fed754deb276645e61", - "picard_base_distribution_by_cycle__Thymine.txt:md5,d0317fe5ef2cf1b692526cb9a18aa50c", - "picard_base_distribution_by_cycle__Undetermined.txt:md5,8aafe701b59b4e70ccec86748c7d6eb3", - "picard_quality_by_cycle.txt:md5,366ee22c93a11c1335f867020bb03da5", - "picard_quality_score_distribution.txt:md5,17d6f490cb59e16a7ed4b04ffaa1a100", - "fastq_screen_plot.txt:md5,db7c9231e756a6e5999399a7385e4687", - "fastqc-status-check-heatmap.txt:md5,fc37eaf184877ac80b92001a7bf2fa81", - "fastqc_overrepresented_sequences_plot.txt:md5,0693849fc324ddf580e2c5a4d910bb4f", - "fastqc_per_base_n_content_plot.txt:md5,0ed7f750b500e7c5387ea5309e1ef467", - "fastqc_per_base_sequence_quality_plot.txt:md5,18016152915653e812818194a142e162", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,93f664e18c021aae79ad222fb4cfb393", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,ba96762be2aa842e1d2a606095ffcb7e", - "fastqc_per_sequence_quality_scores_plot.txt:md5,b9044bfe90fd5685137739f52a97ee2c", - "fastqc_sequence_counts_plot.txt:md5,42b26ad3758717659763c81852c4f197", - "fastqc_sequence_duplication_levels_plot.txt:md5,818f13a5372bad79e54cd984758096c5", - "fastqc_sequence_length_distribution_plot.txt:md5,98316a2607a889ae1e7e79a4f64cc740", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastq_screen.txt:md5,024e1e7f9db3b0906c7aa0904229e176", - "multiqc_fastqc.txt:md5,3407d8f06117a65efce4c70f19e91dd1", - "multiqc_mqc_seq_metadata.txt:md5,5c5f63f044bdcb1ab74a66b896f0b6e7", - "multiqc_picard_AlignmentSummaryMetrics.txt:md5,1debd96f9f64c60a8ec742411da51a28", - "multiqc_picard_baseContent.txt:md5,afb4046944e302b40faea2233bca535c", - "multiqc_picard_quality_by_cycle.txt:md5,6a7552b74dd22410c3cab2c750de792e", - "multiqc_picard_quality_score_distribution.txt:md5,d6343c5f39942bc3f10c194067e6e9bc", - "multiqc_seqfu_mqc.txt:md5,6cdb863a3686fbb772aae5a66925ff23", - "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram_1.txt:md5,6a7552b74dd22410c3cab2c750de792e", - "picard_QualityScoreDistribution_histogram.txt:md5,d6343c5f39942bc3f10c194067e6e9bc", - "picard_alignment_readlength_plot.txt:md5,01140e65e813b4ae43aabe662ef2f49a", - "picard_alignment_summary.txt:md5,79312cf30761025cc6902811c4165290", - "picard_base_distribution_by_cycle__Adenine.txt:md5,3c3671ac2aa18d883691d59adbfe3b2b", - "picard_base_distribution_by_cycle__Cytosine.txt:md5,6cc2ae1411899de5542321ff1592b192", - "picard_base_distribution_by_cycle__Guanine.txt:md5,326471bc846a9fb6b54ff38cbdfb8d90", - "picard_base_distribution_by_cycle__Thymine.txt:md5,3132dac406a9b9e1f18af658ab856a5c", - "picard_base_distribution_by_cycle__Undetermined.txt:md5,0ed7f750b500e7c5387ea5309e1ef467", - "picard_quality_by_cycle.txt:md5,fe4e6ab1c849a4f833eae9a8554ea432", - "picard_quality_score_distribution.txt:md5,c0864f8a1269d8ffd7a51abb6bd3ca2e", - "fastq_screen_plot.txt:md5,4def6c6a888afe487ab6ebef3ba8a133", - "fastqc-status-check-heatmap.txt:md5,61857d2c45cf0c080348047aa34e7525", - "fastqc_overrepresented_sequences_plot.txt:md5,7949c64cc6cef77f29349a188fc09656", - "fastqc_per_base_n_content_plot.txt:md5,0f2fd628631d42ed5e6a1db22578daaa", - "fastqc_per_base_sequence_quality_plot.txt:md5,0a8bfa32ab04eaaa509dec3c37acb2d2", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,8c85be0c70129ba739feceddd58f6c75", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,94b975906d8a07e1604e00d4004f7463", - "fastqc_per_sequence_quality_scores_plot.txt:md5,ec22c8e4836aa726680f0ca767c778a0", - "fastqc_sequence_counts_plot.txt:md5,f4341795bdeba588248a74a095a97f8d", - "fastqc_sequence_duplication_levels_plot.txt:md5,8fc995cb2192a2926eee242681bc3af6", - "fastqc_sequence_length_distribution_plot.txt:md5,4513e22583677a4d6167b9094242eb0b", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastq_screen.txt:md5,fd3074930c72b666f201ae71fa27744b", - "multiqc_fastqc.txt:md5,98111f17d1899cad6379e4e56ed11c53", - "multiqc_mqc_seq_metadata.txt:md5,5c5f63f044bdcb1ab74a66b896f0b6e7", - "multiqc_picard_AlignmentSummaryMetrics.txt:md5,3b1929de09267fc1c1a15804cb5bf536", - "multiqc_picard_baseContent.txt:md5,ff36be9e2642089aa711c637d3cdba29", - "multiqc_picard_quality_by_cycle.txt:md5,9521c83313eaf5f681ac9a75de83a4b7", - "multiqc_picard_quality_score_distribution.txt:md5,90b9e29f22fa16cf2b0c4d92caf2dbb0", - "multiqc_seqfu_mqc.txt:md5,f821357507fda2d4cfd9299f52fa7dc1", - "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram_1.txt:md5,9521c83313eaf5f681ac9a75de83a4b7", - "picard_QualityScoreDistribution_histogram.txt:md5,90b9e29f22fa16cf2b0c4d92caf2dbb0", - "picard_alignment_readlength_plot.txt:md5,9c80659c5c9b2fe9926b789fb67ba6ac", - "picard_alignment_summary.txt:md5,27bbb1fcdeecd26641938e5622087c23", - "picard_base_distribution_by_cycle__Adenine.txt:md5,99c5e961a4d26754e68047c8eb983798", - "picard_base_distribution_by_cycle__Cytosine.txt:md5,44981dd399013d8c06481958be338040", - "picard_base_distribution_by_cycle__Guanine.txt:md5,b6369a23d3926edb90ae9bfdc6d90526", - "picard_base_distribution_by_cycle__Thymine.txt:md5,b253d3fca7c07b6a6dfea91725c58102", - "picard_base_distribution_by_cycle__Undetermined.txt:md5,0f2fd628631d42ed5e6a1db22578daaa", - "picard_quality_by_cycle.txt:md5,3c34ae2bd2442a816577b1a794add2d6", - "picard_quality_score_distribution.txt:md5,0d58c59eac2952e6f71cefc35d4c4477", - "fastq_screen_plot.txt:md5,5abb5b9ed2c976f0ad83216ca3186201", - "fastqc-status-check-heatmap.txt:md5,323d6082b73ddb6ee33385f5ea4301c1", - "fastqc_overrepresented_sequences_plot.txt:md5,4e71d8913d40eb06db0f18d74ce6898f", - "fastqc_per_base_n_content_plot.txt:md5,b317ce09cb7a2be2366b544ea9b20ce6", - "fastqc_per_base_sequence_quality_plot.txt:md5,e6f44d08f4185f680d4748a3b37201e2", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,a1dc8a968f32bcf8a9b4c5f43d299dfa", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,e41b6dc1344f1aee379993daff310187", - "fastqc_per_sequence_quality_scores_plot.txt:md5,76f792b939233b070562cc46617f6371", - "fastqc_sequence_counts_plot.txt:md5,36c68522023b8d536c9362403bf03c48", - "fastqc_sequence_duplication_levels_plot.txt:md5,9ff0df466790d971b3c7ef838efc0f4f", - "fastqc_sequence_length_distribution_plot.txt:md5,9fda632b92e3453f11cd0226484fce8e", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastq_screen.txt:md5,536c28d7fadc9a76944f93ac9d643272", - "multiqc_fastqc.txt:md5,396b4cc0466a6642ec8b954237c42263", - "multiqc_mqc_seq_metadata.txt:md5,5c5f63f044bdcb1ab74a66b896f0b6e7", - "multiqc_picard_AlignmentSummaryMetrics.txt:md5,153c6e6a407ec128b1a02798ca2f1115", - "multiqc_picard_baseContent.txt:md5,6349e514552a0b5a0530fa6f311878a5", - "multiqc_picard_quality_by_cycle.txt:md5,c0c8b4c0197428d4d50e2c532814e1e2", - "multiqc_picard_quality_score_distribution.txt:md5,40e0b6faa75e1b51af42407f7ededb0c", - "multiqc_seqfu_mqc.txt:md5,8cced36d66ca9d25d60c006e734aa7e9", - "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram_1.txt:md5,c0c8b4c0197428d4d50e2c532814e1e2", - "picard_QualityScoreDistribution_histogram.txt:md5,40e0b6faa75e1b51af42407f7ededb0c", - "picard_alignment_readlength_plot.txt:md5,5a19b1f8e2ac49d97f36a7792429419c", - "picard_alignment_summary.txt:md5,f9f791b7c569cfae07aef70aa630d40e", - "picard_base_distribution_by_cycle__Adenine.txt:md5,0165f522c84da6b17a286d37dc30abec", - "picard_base_distribution_by_cycle__Cytosine.txt:md5,6fa0d29d40fe7fa24c166b664b6d4f4b", - "picard_base_distribution_by_cycle__Guanine.txt:md5,bf2426e09ac1ca4773edfc284c220122", - "picard_base_distribution_by_cycle__Thymine.txt:md5,3cbace572471ccf6c58673181dd0c0ec", - "picard_base_distribution_by_cycle__Undetermined.txt:md5,b317ce09cb7a2be2366b544ea9b20ce6", - "picard_quality_by_cycle.txt:md5,7cb705007bc97da8c0da7d93201e6975", - "picard_quality_score_distribution.txt:md5,47d684abae0a8f4f09df43e91d54fb9a", - "fastq_screen_plot.txt:md5,82ceb9f2109f865d6d1b943441c09550", - "fastqc-status-check-heatmap.txt:md5,56b426cd5c030288639533fce7c95ab1", - "fastqc_overrepresented_sequences_plot.txt:md5,8e83abdbe7362e64d63339ee31ab3361", - "fastqc_per_base_n_content_plot.txt:md5,33b70326d8f888ac5a3d99b85f365e43", - "fastqc_per_base_sequence_quality_plot.txt:md5,40bc954cc0d58a3197fdf124a40f1ca4", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,e240e30996c81a34b5d1a6b5a98ae254", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,b44d3376d503af12857d494c58b514bb", - "fastqc_per_sequence_quality_scores_plot.txt:md5,66b5b6d44f398fc9429460c0b9ba3ea9", - "fastqc_sequence_counts_plot.txt:md5,6e5804f553f656cffb02f927015d1026", - "fastqc_sequence_duplication_levels_plot.txt:md5,fbe41935ea2e2faf7104393b476e5ac5", - "fastqc_sequence_length_distribution_plot.txt:md5,e77dc4ab73252c2e09c7452c3b8e8ab3", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastq_screen.txt:md5,4fc422d9cb06a1d0248cc578c1eebaa2", - "multiqc_fastqc.txt:md5,95c8ffb23baafec625aeb600047515ae", - "multiqc_mqc_seq_metadata.txt:md5,5c5f63f044bdcb1ab74a66b896f0b6e7", - "multiqc_picard_AlignmentSummaryMetrics.txt:md5,2d05e826f5152fd0143edf7270de1235", - "multiqc_picard_baseContent.txt:md5,f3f23899a30a96260d8b5b3020708703", - "multiqc_picard_quality_by_cycle.txt:md5,c7edfc271ab59ecedad0ab046afd3563", - "multiqc_picard_quality_score_distribution.txt:md5,7fa89b52b8bc96dd1074aa07cb5a5a54", - "multiqc_seqfu_mqc.txt:md5,ff4ce1c88f39ed24a88bae0a861f75c8", - "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "picard_MeanQualityByCycle_histogram_1.txt:md5,c7edfc271ab59ecedad0ab046afd3563", - "picard_QualityScoreDistribution_histogram.txt:md5,7fa89b52b8bc96dd1074aa07cb5a5a54", - "picard_alignment_readlength_plot.txt:md5,c1519319c4942162b05e6225fea10569", - "picard_alignment_summary.txt:md5,49f5c0d2cf21a13d5f363cb42cf3790e", - "picard_base_distribution_by_cycle__Adenine.txt:md5,466a14fc9c09f9f4de02a00e8763cd2a", - "picard_base_distribution_by_cycle__Cytosine.txt:md5,d5854c22df4ac60b8c47c4002d975fe9", - "picard_base_distribution_by_cycle__Guanine.txt:md5,c27b5aa2b90397b1302b880dff3ec958", - "picard_base_distribution_by_cycle__Thymine.txt:md5,6f2a3e9d03f17a93c69476607a1a580d", - "picard_base_distribution_by_cycle__Undetermined.txt:md5,33b70326d8f888ac5a3d99b85f365e43", - "picard_quality_by_cycle.txt:md5,0aa028d69d8bb02f0a2bcd0ed08f4235", - "picard_quality_score_distribution.txt:md5,a2882ff59902dc95830ed4bdb955561a", - "200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml:md5,29e05fed18bca0e9a857c992b6d59a40", - "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", - "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", - "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", - "Sample23_03_seqfu_mqc.txt:md5,4d4f280911a08bb6b753142980178027", - "SampleA_02_seqfu.tsv:md5,aec811f267bb2a0ef066a7abb59d2775", - "SampleA_02_seqfu_mqc.txt:md5,a819409a5cb64e20c3e54ec5ada4aa27", - "Undetermined_05_seqfu.tsv:md5,3a42c5c66a0a118f1a6f6f6e560b0e7e", - "Undetermined_05_seqfu_mqc.txt:md5,bd8be908362c5cb08a72f8ae7ab41b0d", - "sampletest_04_seqfu.tsv:md5,a5bea0b9c6015dd1a201ffd433e9b377", - "sampletest_04_seqfu_mqc.txt:md5,2180961655bbc8a12f0152d6a4b803a2" - ], - [ - "Sample1_01.bam:md5,d06ccfde49cc474faebcab2ebf71b324", - "Sample23_03.bam:md5,5ff9f554c6255fd07d3841c6616c5031", - "SampleA_02.bam:md5,250d0031520e59ee59a7112ab1ea32e1", - "Undetermined_05.bam:md5,8fcc158f1e0736b366152d5e187644ca", - "sampletest_04.bam:md5,f80371e37421d97499b3bfd55221ed00" + "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml" ], + "No stable content", + "No BAM files", "No warnings" ], - "timestamp": "2026-03-12T16:33:49.096054029", + "timestamp": "2026-03-16T09:40:34.164513363", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -995,11 +34,9 @@ ], "No stable content", "No BAM files", - [ - "WARN: No samples with rundir found, skipping RUNDIRPARSER" - ] + "No warnings" ], - "timestamp": "2026-03-13T16:00:47.718722732", + "timestamp": "2026-03-16T09:40:03.529857594", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -1007,42 +44,19 @@ }, "NovaSeq6000 data test - fq_lint force success": { "content": [ - 2, + 0, { - "BWAMEM2_INDEX": { - "bwamem2": "2.2.1" - }, - "SAMTOOLS_FAIDX": { - "samtools": "1.23" - } + }, [ - "bwamem2_index", - "bwamem2_index/bwamem2", - "bwamem2_index/bwamem2/genome.fa.0123", - "bwamem2_index/bwamem2/genome.fa.amb", - "bwamem2_index/bwamem2/genome.fa.ann", - "bwamem2_index/bwamem2/genome.fa.bwt.2bit.64", - "bwamem2_index/bwamem2/genome.fa.pac", "pipeline_info", - "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", - "samtools_faidx", - "samtools_faidx/genome.fa.fai" - ], - [ - "genome.fa.0123:md5,8af61f4bc59cc2fe7b396db46a2173f3", - "genome.fa.amb:md5,657cfdf0628d140d645d8d01a24f0c5f", - "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", - "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", - "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b" + "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml" ], + "No stable content", "No BAM files", - [ - "WARN: No samples with rundir found, skipping RUNDIRPARSER" - ] + "No warnings" ], - "timestamp": "2026-03-12T14:52:51.835298832", + "timestamp": "2026-03-16T09:39:43.387936168", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/workflows/seqinspector.nf b/workflows/seqinspector.nf index 539201c3..a6f78b08 100644 --- a/workflows/seqinspector.nf +++ b/workflows/seqinspector.nf @@ -7,6 +7,7 @@ // modules include { BWAMEM2_MEM } from '../modules/nf-core/bwamem2/mem' +include { CHECKQC } from '../modules/nf-core/checkqc' include { FASTP } from '../modules/nf-core/fastp' include { FASTQC } from '../modules/nf-core/fastqc' include { FASTQE } from '../modules/nf-core/fastqe' @@ -43,6 +44,7 @@ workflow SEQINSPECTOR { ch_samplesheet // channel: samplesheet read in from --input bait_intervals bwamem2_index + checkqc_config fasta_reference fastq_screen_references multiqc_config @@ -115,6 +117,52 @@ workflow SEQINSPECTOR { ch_multiqc_files = ch_multiqc_files.mix(RUNDIRPARSER.out.multiqc) } + // + // MODULE: CheckQC + // + if ('checkqc' in tools) { + + // Branch the samplesheet channel based on rundir presence + ch_rundir_branch = ch_samplesheet.branch { meta, _reads -> + with_rundir: meta.rundir.size() > 0 + without_rundir: true + } + + // Log warnings for samples without rundir + ch_rundir_branch.without_rundir.subscribe { meta, _reads -> + log.warn("Sample '${meta.id}' does not have a rundir specified") + } + + // From samplesheet channel serving (sampleMetaObj, sampleReadsPath) tuples: + // --> Create new rundir channel serving (rundirMetaObj, rundirPath) tuples + ch_rundir = ch_rundir_branch.with_rundir + .map { meta, _reads -> [meta.rundir, meta] } + .groupTuple() + .map { rundir, metas -> + // Collect all unique tags into a list + def all_tags = metas.collect { meta -> meta.tags }.flatten().unique() + // Create a new meta object whose attributes are... + // 1. tags: The list of merged tags, used for grouping MultiQC reports + // 2. dirname: The simple name of the rundir, used for setting unique output names in publishDir + def dir_meta = [tags: all_tags, dirname: rundir.simpleName] + // Return the new structure, to... + // 1. Feed into rundir specific processes + // 2. Mix with the ch_multiqc_files channel downstream + [dir_meta, rundir] + } + + ch_rundir.ifEmpty { log.warn("No samples with rundir found, skipping CHECKQC") } + + CHECKQC( + ch_rundir, + checkqc_config + ? file(checkqc_config, checkIfExists: true) + : [], + ) + + ch_multiqc_files = ch_multiqc_files.mix(CHECKQC.out.report) + } + // // MODULE: Run Seqtk sample