diff --git a/CHANGELOG.md b/CHANGELOG.md index 77a8dfb2..42e770ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,11 +15,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#303](https://github.com/nf-core/taxprofiler/pull/303) Add support for taxpasta profile standardisation in single sample pipeline runs (❤️ to @artur-matysik for request, added by @jfy133) - [#315](https://github.com/nf-core/taxprofiler/pull/315) Updated to nf-core pipeline template v2.9 (added by @sofstam & @jfy133) - [#319](https://github.com/nf-core/taxprofiler/pull/319) Added support for virus hit expansion in Kaiju (❤️ to @dnlrxn for requesting, added by @jfy133) + - [#323](https://github.com/nf-core/taxprofiler/pull/323) Add ability to skip sequencing quality control tools (❤️ to @vinisalazar for requesting, added by @jfy133) ### `Fixed` - [#271](https://github.com/nf-core/taxprofiler/pull/271) Improved standardised table generation documentation for mOTUs manual database download tutorial (♥ to @prototaxites for reporting, fix by @jfy133) -- [#269](https://github.com/nf-core/taxprofiler/pull/269) Reduced output files in AWS full test output due to very large files +- [#269](https://github.com/nf-core/taxprofiler/pull/269) Reduced output files in AWS full test output due to very large files (fix by @jfy133) - [#270](https://github.com/nf-core/taxprofiler/pull/270) Fixed warning for host removal index parameter, and improved index checks (♥ to @prototaxites for reporting, fix by @jfy133) - [#274](https://github.com/nf-core/taxprofiler/pull/274) Substituted the samtools/bam2fq module with samtools/fastq module (fix by @sofstam) - [#275](https://github.com/nf-core/taxprofiler/pull/275) Replaced function used for error reporting to more Nextflow friendly method (fix by @jfy133) @@ -36,7 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | Tool | Previous version | New version | | -------- | ---------------- | ----------- | | MultiQC | 1.13 | 1.14 | -| taxpasta | 0.2.3 | 0.4.0 | +| taxpasta | 0.2.3 | 0.4.1 | ### `Deprecated` diff --git a/modules.json b/modules.json index b8eff3b4..a608c5ca 100644 --- a/modules.json +++ b/modules.json @@ -224,12 +224,12 @@ }, "taxpasta/merge": { "branch": "master", - "git_sha": "ef280893021dd1e877db163966022cabae06dfdb", + "git_sha": "72230a81d2a1e61d171dbfc427d48d53ac7b1d86", "installed_by": ["modules"] }, "taxpasta/standardise": { "branch": "master", - "git_sha": "ef280893021dd1e877db163966022cabae06dfdb", + "git_sha": "72230a81d2a1e61d171dbfc427d48d53ac7b1d86", "installed_by": ["modules"] }, "untar": { diff --git a/modules/nf-core/taxpasta/merge/main.nf b/modules/nf-core/taxpasta/merge/main.nf index dcbca616..bddda482 100644 --- a/modules/nf-core/taxpasta/merge/main.nf +++ b/modules/nf-core/taxpasta/merge/main.nf @@ -2,10 +2,10 @@ process TAXPASTA_MERGE { tag "$meta.id" label 'process_single' - conda "bioconda::taxpasta=0.4.0" + conda "bioconda::taxpasta=0.4.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.0--pyhdfd78af_0': - 'biocontainers/taxpasta:0.4.0--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.1--pyhdfd78af_0': + 'biocontainers/taxpasta:0.4.1--pyhdfd78af_0' }" input: diff --git a/modules/nf-core/taxpasta/standardise/main.nf b/modules/nf-core/taxpasta/standardise/main.nf index 4dde7967..4565ccfa 100644 --- a/modules/nf-core/taxpasta/standardise/main.nf +++ b/modules/nf-core/taxpasta/standardise/main.nf @@ -2,10 +2,10 @@ process TAXPASTA_STANDARDISE { tag "$meta.id" label 'process_single' - conda "bioconda::taxpasta=0.4.0" + conda "bioconda::taxpasta=0.4.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.0--pyhdfd78af_0': - 'biocontainers/taxpasta:0.4.0--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.1--pyhdfd78af_0': + 'biocontainers/taxpasta:0.4.1--pyhdfd78af_0' }" input: tuple val(meta), path(profile) diff --git a/nextflow.config b/nextflow.config index 1b4895c3..1d79286e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -61,6 +61,7 @@ params { databases = null // FASTQ preprocessing + skip_preprocessing_qc = false preprocessing_qc_tool = 'fastqc' perform_shortread_qc = false diff --git a/nextflow_schema.json b/nextflow_schema.json index 4124bf5e..b2d2807e 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -56,6 +56,12 @@ "description": "Common options across both long and short read preprocessing QC steps", "default": "", "properties": { + "skip_preprocessing_qc": { + "type": "boolean", + "fa_icon": "fas fa-forward", + "description": "Specify to skip sequencing quality control of raw sequencing reads", + "help": "Skipping running of FastQC or Falco maybe useful in cases where you are already running with preprocessed data (e.g. you are also skipping short/long read qc steps) that you already know the quality of" + }, "preprocessing_qc_tool": { "type": "string", "default": "fastqc", diff --git a/workflows/taxprofiler.nf b/workflows/taxprofiler.nf index 9c7157b2..f964e740 100644 --- a/workflows/taxprofiler.nf +++ b/workflows/taxprofiler.nf @@ -144,13 +144,16 @@ workflow TAXPROFILER { */ ch_input_for_fastqc = INPUT_CHECK.out.fastq.mix( INPUT_CHECK.out.nanopore ) - if ( params.preprocessing_qc_tool == 'falco' ) { - FALCO ( ch_input_for_fastqc ) - ch_versions = ch_versions.mix(FALCO.out.versions.first()) - } else { - FASTQC ( ch_input_for_fastqc ) - ch_versions = ch_versions.mix(FASTQC.out.versions.first()) + if ( !params.skip_preprocessing_qc ) { + if ( params.preprocessing_qc_tool == 'falco' ) { + FALCO ( ch_input_for_fastqc ) + ch_versions = ch_versions.mix(FALCO.out.versions.first()) + } else { + FASTQC ( ch_input_for_fastqc ) + ch_versions = ch_versions.mix(FASTQC.out.versions.first()) + } } + /* SUBWORKFLOW: PERFORM PREPROCESSING */ @@ -281,18 +284,19 @@ workflow TAXPROFILER { ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) - if ( params.preprocessing_qc_tool == 'falco' ) { - // only mix in files actually used by MultiQC - ch_multiqc_files = ch_multiqc_files.mix(FALCO.out.txt - .map { meta, reports -> reports } - .flatten() - .filter { path -> path.name.endsWith('_data.txt')} - .ifEmpty([])) - } else { - ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) + if ( !params.skip_preprocessing_qc ) { + if ( params.preprocessing_qc_tool == 'falco' ) { + // only mix in files actually used by MultiQC + ch_multiqc_files = ch_multiqc_files.mix(FALCO.out.txt + .map { meta, reports -> reports } + .flatten() + .filter { path -> path.name.endsWith('_data.txt')} + .ifEmpty([])) + } else { + ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) + } } - if (params.perform_shortread_qc) { ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_PREPROCESSING.out.mqc.collect{it[1]}.ifEmpty([]) ) }