diff --git a/CHANGELOG.md b/CHANGELOG.md index f2d79a65..fd59f4b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,14 @@ description: A full list of Bactopia releases and a description of the changes. - phispy not working with Bakta genbank files - missed check of `--download_bakta` param in main workflow - quast not working when estimated genome size is 0 +- `abricate` now gets database subdirectories + +### `Enhancements to OSS` + +- fix amrfinderplus pinning in abritamr [bioconda/bioconda-recipes#46714](https://github.com/bioconda/bioconda-recipes/pull/46714) +- adjust python pinning in gubbins [bioconda/bioconda-recipes#46713](https://github.com/bioconda/bioconda-recipes/pull/46713) +- fix issue with sistr container [bioconda/bioconda-recipes#46712](https://github.com/bioconda/bioconda-recipes/pull/46712) +- update rgi pinning for pyrodigal [bioconda/bioconda-recipes#46669](https://github.com/bioconda/bioconda-recipes/pull/46669) ## v3.0.0 bactopia/bactopia "Black Cat and Brown Dog" - 2023/09/11 diff --git a/bin/scrubber-summary.py b/bin/scrubber-summary.py new file mode 100755 index 00000000..01337a17 --- /dev/null +++ b/bin/scrubber-summary.py @@ -0,0 +1,59 @@ +#! /usr/bin/env python3 +""" +Create a simple before and after report from scrubbing +""" +PROGRAM = "scrubber-summary" +VERSION = "3.0.1" +import json +import sys + +def read_json(json_file): + json_data = None + with open(json_file, 'rt') as json_fh: + json_data = json.load(json_fh) + return json_data + +if __name__ == '__main__': + import argparse as ap + + parser = ap.ArgumentParser( + prog=PROGRAM, + conflict_handler='resolve', + description=( + f'{PROGRAM} (v{VERSION}) - Create a simple before and after report from scrubbing' + ) + ) + parser.add_argument('sample', metavar="SAMPLE", type=str, + help='the name of the sample') + parser.add_argument('original', metavar="ORIGINAL", type=str, + help='A summary of the original FASTQs in JSON format') + parser.add_argument('scrubbed', metavar="SCRUBBED", type=str, + help='A summary of the scrubbed FASTQs in JSON format') + parser.add_argument('--version', action='version', + version=f'{PROGRAM} {VERSION}') + + if len(sys.argv) == 1: + parser.print_help() + sys.exit(0) + + args = parser.parse_args() + + original_json = read_json(args.original) + scrubbed_json = read_json(args.scrubbed) + + # Summary + cols = [ + 'sample', + 'original_read_total', + 'scrubbed_read_total', + 'host_read_total', + ] + results = [ + args.sample, + str(original_json['qc_stats']['read_total']), + str(scrubbed_json['qc_stats']['read_total']), + str(original_json['qc_stats']['read_total'] - scrubbed_json['qc_stats']['read_total']), + ] + + print('\t'.join(cols)) + print('\t'.join(results)) diff --git a/conf/params.config b/conf/params.config index 576f0abb..8b3fd69c 100644 --- a/conf/params.config +++ b/conf/params.config @@ -13,7 +13,7 @@ params { //nf-core schema_ignore_params = 'no_check_certificate,run_name,prokka_debug,is_ci,sourmash_url,mash_url,mlst_url,amrfinder_url,merge_folder,wf_has_subdir,build_all,use_mamba,empty_proteins,empty_tf,empty_adapters,empty_phix,help_all,include_tools,min_time,publish_dir,silent,test_data,test_data_dir,verbose,schema_inputs,empty_extra,empty_r2,empty_r1,workflows,available_workflows,is_subworkflow,enable_conda,force_rebuild,config_profile_url,config_profile_contact,config_profile_description,config_profile_name' - schema_inputs = ['fastqs', 'R1,R2,SE,sample,hybrid', 'R1,R2,sample', 'SE,sample', 'assembly,sample', 'accessions', 'accession'] + schema_inputs = ['fastqs', 'r1,r2,se,sample,hybrid', 'r1,r2,sample', 'se,sample', 'assembly,sample', 'accessions', 'accession'] // Max Job Request Parameters max_retry = 3 diff --git a/modules/nf-core/abritamr/run/main.nf b/modules/nf-core/abritamr/run/main.nf index eba448c0..1e16fe10 100644 --- a/modules/nf-core/abritamr/run/main.nf +++ b/modules/nf-core/abritamr/run/main.nf @@ -13,8 +13,8 @@ process ABRITAMR_RUN { conda (params.enable_conda ? conda_env : null) container "${ workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/abritamr:1.0.17--pyh5707d69_0' : - 'quay.io/biocontainers/abritamr:1.0.17--pyh5707d69_0' }" + 'https://depot.galaxyproject.org/singularity/abritamr:1.0.17--pyh5707d69_1' : + 'quay.io/biocontainers/abritamr:1.0.17--pyh5707d69_1' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/ariba/getref/main.nf b/modules/nf-core/ariba/getref/main.nf index 3a8f31e9..9be54cb2 100644 --- a/modules/nf-core/ariba/getref/main.nf +++ b/modules/nf-core/ariba/getref/main.nf @@ -14,8 +14,8 @@ process ARIBA_GETREF { conda (params.enable_conda ? conda_env : null) container "${ workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ariba:2.14.6--py39h67e14b5_3' : - 'quay.io/biocontainers/ariba:2.14.6--py39h67e14b5_3' }" + 'https://depot.galaxyproject.org/singularity/ariba:2.14.6--py39h67e14b5_4' : + 'quay.io/biocontainers/ariba:2.14.6--py39h67e14b5_4' }" input: val(db_name) diff --git a/modules/nf-core/busco/params.config b/modules/nf-core/busco/params.config index b29a3950..16efe4bb 100644 --- a/modules/nf-core/busco/params.config +++ b/modules/nf-core/busco/params.config @@ -13,5 +13,5 @@ params { augustus_parameters = "" augustus_species = "" augustus_long = false - run_name = params.busco_lineage + run_name = "${params.wf}-${params.busco_lineage}" } diff --git a/modules/nf-core/custom/wget/main.nf b/modules/nf-core/custom/wget/main.nf new file mode 100644 index 00000000..65e0b600 --- /dev/null +++ b/modules/nf-core/custom/wget/main.nf @@ -0,0 +1,35 @@ +// Import generic module functions +include { get_resources; initOptions; saveFiles } from '../../../../lib/nf/functions' +RESOURCES = get_resources(workflow.profile, params.max_memory, params.max_cpus) +options = initOptions(params.containsKey("options") ? params.options : [:], 'custom_wget') +options.btype = options.btype ?: "comparative" +conda_tools = "bioconda::gnu-wget=1.18" +conda_name = conda_tools.replace("=", "-").replace(":", "-").replace(" ", "-") +conda_env = file("${params.condadir}/${conda_name}").exists() ? "${params.condadir}/${conda_name}" : conda_tools + +process CUSTOM_WGET { + label 'process_low' + storeDir params.datasets_cache + publishDir params.datasets_cache + + conda (params.enable_conda ? conda_env : null) + container "${ workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gnu-wget:1.18--h36e9172_9' : + 'quay.io/biocontainers/gnu-wget:1.18--h36e9172_9' }" + + output: + path "${options.args2}", emit: download + path "*.{log,err}" , emit: logs, optional: true + path ".command.*" , emit: nf_logs + path "versions.yml" ,emit: versions + + script: + """ + wget $options.args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wget: \$(echo \$( wget --version 2>&1) | sed "s/GNU Wget //;s/ .*//;" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/custom/wget/meta.yaml b/modules/nf-core/custom/wget/meta.yaml new file mode 100644 index 00000000..fdfa03ba --- /dev/null +++ b/modules/nf-core/custom/wget/meta.yaml @@ -0,0 +1,24 @@ +name: custom_wget +description: Custom module used to download files using wget +keywords: + - wget + - custom + - version +tools: + - custom: + description: Custom module used to download files using wget + homepage: https://github.com/nf-core/tools + documentation: https://github.com/nf-core/tools + +output: + - download: + type: file + description: Downloaded file from input URL + pattern: "*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@rpetit3" diff --git a/modules/nf-core/gubbins/main.nf b/modules/nf-core/gubbins/main.nf index 20797b2f..3ef725cc 100644 --- a/modules/nf-core/gubbins/main.nf +++ b/modules/nf-core/gubbins/main.nf @@ -13,8 +13,8 @@ process GUBBINS { conda (params.enable_conda ? conda_env : null) container "${ workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gubbins:3.3.4--py310pl5321he4a0461_0' : - 'quay.io/biocontainers/gubbins:3.3.4--py310pl5321he4a0461_0' }" + 'https://depot.galaxyproject.org/singularity/gubbins:3.3.4--py39pl5321he4a0461_1' : + 'quay.io/biocontainers/gubbins:3.3.4--py39pl5321he4a0461_1' }" input: tuple val(meta), path(msa) diff --git a/modules/nf-core/kraken2/main.nf b/modules/nf-core/kraken2/main.nf index 768dc723..ef8923b3 100644 --- a/modules/nf-core/kraken2/main.nf +++ b/modules/nf-core/kraken2/main.nf @@ -32,9 +32,9 @@ process KRAKEN2 { script: prefix = options.suffix ? "${options.suffix}" : "${meta.id}" def paired = meta.single_end ? "" : "--paired" - classified_naming = params.wf == "teton" ? "host" : "classified" + classified_naming = params.wf == "teton" || params.wf == "scrubber" ? "host" : "classified" classified = meta.single_end ? "${prefix}.${classified_naming}.fastq" : "${prefix}.${classified_naming}#.fastq" - unclassified_naming = params.wf == "teton" ? "scrubbed" : "unclassified" + unclassified_naming = params.wf == "teton" || params.wf == "scrubber" ? "scrubbed" : "unclassified" unclassified = meta.single_end ? "${prefix}.${unclassified_naming}.fastq" : "${prefix}.${unclassified_naming}#.fastq" def is_tarball = db.getName().endsWith(".tar.gz") ? true : false """ @@ -67,9 +67,15 @@ process KRAKEN2 { fi if [ "$unclassified_naming" == "scrubbed" ]; then + # Rename scrubbed reads + if [ "$meta.single_end" == "false" ]; then + mv ${prefix}.${unclassified_naming}_1.fastq.gz ${prefix}_R1.scrubbed.fastq.gz + mv ${prefix}.${unclassified_naming}_2.fastq.gz ${prefix}_R2.scrubbed.fastq.gz + fi + # Quick stats on reads zcat ${reads} | fastq-scan > original.json - zcat ${prefix}.scrubbed* | fastq-scan > scrubbed.json + zcat *.scrubbed.fastq.gz | fastq-scan > scrubbed.json scrubber-summary.py ${prefix} original.json scrubbed.json > ${prefix}.scrub.report.tsv # Remove host reads diff --git a/modules/nf-core/kraken2/params-teton.json b/modules/nf-core/kraken2/params-teton.json new file mode 100644 index 00000000..a43bd908 --- /dev/null +++ b/modules/nf-core/kraken2/params-teton.json @@ -0,0 +1,90 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/bactopia/bactopia/master/modules/nf-core/kraken2/params.json", + "title": "Kraken2 Module", + "description": "A module for taxonomic classification of sequence reads", + "type": "object", + "definitions": { + "kraken2_parameters": { + "title": "Scrubber (Kraken2) Parameters", + "type": "object", + "description": "", + "default": "", + "fa_icon": "fas fa-exclamation-circle", + "properties": { + "quick_mode": { + "type": "boolean", + "default": false, + "description": "Quick operation (use first hit or hits)", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "confidence": { + "type": "number", + "default": 0.0, + "description": "Confidence score threshold between 0 and 1", + "fa_icon": "fas fa-expand-arrows-alt" + }, + "minimum_base_quality": { + "type": "integer", + "default": 0, + "description": "Minimum base quality used in classification", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "use_mpa_style": { + "type": "boolean", + "default": false, + "description": "Format report output like Kraken 1's kraken-mpa-report", + "fa_icon": "fas fa-expand-arrows-alt" + }, + "report_zero_counts": { + "type": "boolean", + "default": false, + "description": "Report counts for ALL taxa, even if counts are zero", + "fa_icon": "fas fa-expand-arrows-alt" + }, + "report_minimizer_data": { + "type": "boolean", + "default": false, + "description": "Include minimizer and distinct minimizer count information in report", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "use_names": { + "type": "boolean", + "default": false, + "description": "Print scientific names instead of just taxids", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "memory_mapping": { + "type": "boolean", + "default": false, + "description": "Avoid loading database into RAM", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "minimum_hit_groups": { + "type": "integer", + "default": 2, + "description": "Minimum number of hit groups needed to make a call", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + }, + "remove_filtered_reads": { + "type": "boolean", + "default": false, + "description": "Discard the classified and unclassified FASTQs prduced by Kraken2", + "fa_icon": "fas fa-expand-arrows-alt", + "hidden": true + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/kraken2_parameters" + } + ] +} diff --git a/modules/nf-core/kraken2/params.json b/modules/nf-core/kraken2/params.json index 4b12e213..5dcccb94 100644 --- a/modules/nf-core/kraken2/params.json +++ b/modules/nf-core/kraken2/params.json @@ -81,7 +81,7 @@ "remove_filtered_reads": { "type": "boolean", "default": false, - "description": "Discard the classified and unclassified FASTQs prduced by Kraken2", + "description": "Discard the classified and unclassified FASTQs produced by Kraken2", "fa_icon": "fas fa-expand-arrows-alt", "hidden": true } diff --git a/modules/nf-core/sistr/main.nf b/modules/nf-core/sistr/main.nf index b1ab7008..31cf0d82 100644 --- a/modules/nf-core/sistr/main.nf +++ b/modules/nf-core/sistr/main.nf @@ -13,8 +13,8 @@ process SISTR { conda (params.enable_conda ? conda_env : null) container "${ workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/sistr_cmd:1.1.2--pyhca03a8a_0' : - 'quay.io/biocontainers/sistr_cmd:1.1.2--pyhca03a8a_0' }" + 'https://depot.galaxyproject.org/singularity/sistr_cmd:1.1.2--pyhca03a8a_1' : + 'quay.io/biocontainers/sistr_cmd:1.1.2--pyhca03a8a_1' }" input: tuple val(meta), path(fasta) diff --git a/subworkflows/local/abricate/test.yml b/subworkflows/local/abricate/test.yml index 1b31f849..de9b9d6f 100644 --- a/subworkflows/local/abricate/test.yml +++ b/subworkflows/local/abricate/test.yml @@ -4,43 +4,43 @@ - abricate - tools files: - - path: bactopia/bactopia-runs/abricate/merged-results/abricate.tsv + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/abricate.tsv contains: ['FILE', 'NUM_FOUND'] - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.begin - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.err - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.log - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.out - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.run + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.begin + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.err + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.log + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.out + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.sh + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.sh contains: ['abricate', 'END_VERSIONS'] - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/nf-merged-results.trace + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/nf-merged-results.trace contains: ['nextflow.trace'] - - path: bactopia/bactopia-runs/abricate/merged-results/logs/abricate-concat/versions.yml + - path: bactopia/bactopia-runs/abricate-ncbi/merged-results/logs/abricate-concat/versions.yml contains: ['abricate'] - - path: bactopia/bactopia-runs/abricate/nf-reports/abricate-dag.dot + - path: bactopia/bactopia-runs/abricate-ncbi/nf-reports/abricate-dag.dot contains: ['abricatedag', 'ABRICATE', 'versions'] - - path: bactopia/bactopia-runs/abricate/nf-reports/abricate-report.html + - path: bactopia/bactopia-runs/abricate-ncbi/nf-reports/abricate-report.html contains: ['html', 'Nextflow', 'Report'] - - path: bactopia/bactopia-runs/abricate/nf-reports/abricate-timeline.html + - path: bactopia/bactopia-runs/abricate-ncbi/nf-reports/abricate-timeline.html contains: ['html', 'Nextflow', 'timeline'] - - path: bactopia/bactopia-runs/abricate/nf-reports/abricate-trace.txt + - path: bactopia/bactopia-runs/abricate-ncbi/nf-reports/abricate-trace.txt contains: ['task_id'] - - path: bactopia/GCF_000292685/tools/abricate/GCF_000292685.txt + - path: bactopia/GCF_000292685/tools/abricate/ncbi/GCF_000292685.txt contains: ['FILE', 'COVERAGE', 'RESISTANCE'] - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.begin + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.begin md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.err + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.err contains: ["database", "genes", "Done"] - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.log + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.log contains: ["database", "genes", "Done"] - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.out + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.out md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.run + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.sh + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.sh contains: ['abricate', 'END_VERSIONS'] - - path: bactopia/GCF_000292685/tools/abricate/logs/nf-abricate.trace + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/nf-abricate.trace contains: ['nextflow.trace'] - - path: bactopia/GCF_000292685/tools/abricate/logs/versions.yml + - path: bactopia/GCF_000292685/tools/abricate/ncbi/logs/versions.yml md5sum: 883068280465b2816cfae24f8ba0ec3c diff --git a/subworkflows/local/abritamr/test.yml b/subworkflows/local/abritamr/test.yml index be411857..f0c6ab53 100644 --- a/subworkflows/local/abritamr/test.yml +++ b/subworkflows/local/abritamr/test.yml @@ -29,7 +29,7 @@ - path: bactopia/GCF_000292685/tools/abritamr/logs/nf-abritamr.trace contains: ['nextflow.trace'] - path: bactopia/GCF_000292685/tools/abritamr/logs/versions.yml - md5sum: 603690c9d9ad1d9cf8faa026765195d1 + md5sum: 76491e13fdc40c767869c29792969379 - path: bactopia/bactopia-runs/abritamr/nf-reports/abritamr-dag.dot contains: ['abritamr', 'ABRITAMR', 'versions'] - path: bactopia/bactopia-runs/abritamr/nf-reports/abritamr-report.html diff --git a/subworkflows/local/amrfinderplus/test.yml b/subworkflows/local/amrfinderplus/test.yml index 21c73bb1..5789c3b6 100644 --- a/subworkflows/local/amrfinderplus/test.yml +++ b/subworkflows/local/amrfinderplus/test.yml @@ -61,4 +61,4 @@ - path: bactopia/GCF_000292685/tools/amrfinderplus/logs/nf-amrfinderplus.trace contains: ['nextflow.trace'] - path: bactopia/GCF_000292685/tools/amrfinderplus/logs/versions.yml - md5sum: 9933c8136bf5f0001ed5ec26405db0a7 + md5sum: bc198f6b2e09d2ce26d1c9f77d60899a diff --git a/subworkflows/local/ariba/test.yml b/subworkflows/local/ariba/test.yml index 9736f11e..5baf6aae 100644 --- a/subworkflows/local/ariba/test.yml +++ b/subworkflows/local/ariba/test.yml @@ -4,41 +4,41 @@ - ariba - bactopia-tools files: - - path: bactopia/bactopia-runs/ariba/merged-results/card-report.tsv + - path: bactopia/bactopia-runs/ariba-card/merged-results/card-report.tsv contains: ["ariba_ref_name", "reads", "resistance", "Clostridioides"] - - path: bactopia/bactopia-runs/ariba/merged-results/card-summary.csv + - path: bactopia/bactopia-runs/ariba-card/merged-results/card-summary.csv contains: ["name", "novel_var", "Clostridioides"] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.begin - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.err - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.log - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.out - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.run + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.begin + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.err + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.log + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.out + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.sh + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.sh contains: ['csvtk', 'concat', "END_VERSIONS"] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/nf-merged-results.trace + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/nf-merged-results.trace contains: ['nextflow.trace'] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-report/versions.yml + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-report/versions.yml md5sum: 344624d16fe24cfad6e9f45a19be708f - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.begin - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.err - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.log - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.out - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.run + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.begin + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.err + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.log + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.out + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.sh + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.sh contains: ['csvtk', 'concat', "END_VERSIONS"] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/nf-merged-results.trace + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/nf-merged-results.trace contains: ['nextflow.trace'] - - path: bactopia/bactopia-runs/ariba/merged-results/logs/card-summary/versions.yml + - path: bactopia/bactopia-runs/ariba-card/merged-results/logs/card-summary/versions.yml md5sum: 6551889c4545016b96a75751d9efdb38 - - path: bactopia/bactopia-runs/ariba/nf-reports/ariba-dag.dot + - path: bactopia/bactopia-runs/ariba-card/nf-reports/ariba-dag.dot contains: ['aribadag', 'ARIBA', 'versions'] - - path: bactopia/bactopia-runs/ariba/nf-reports/ariba-report.html + - path: bactopia/bactopia-runs/ariba-card/nf-reports/ariba-report.html contains: ['html', 'Nextflow', 'Report'] - - path: bactopia/bactopia-runs/ariba/nf-reports/ariba-timeline.html + - path: bactopia/bactopia-runs/ariba-card/nf-reports/ariba-timeline.html contains: ['html', 'Nextflow', 'timeline'] - - path: bactopia/bactopia-runs/ariba/nf-reports/ariba-trace.txt + - path: bactopia/bactopia-runs/ariba-card/nf-reports/ariba-trace.txt contains: ['task_id'] - path: bactopia/SRR2838702/tools/ariba/card/SRR2838702-report.tsv contains: ["ariba_ref_name", "reads", "resistance", "Clostridioides"] diff --git a/subworkflows/local/busco/main.nf b/subworkflows/local/busco/main.nf index da0ba702..8563b9ff 100644 --- a/subworkflows/local/busco/main.nf +++ b/subworkflows/local/busco/main.nf @@ -13,7 +13,7 @@ options.args = [ "--evalue ${params.busco_evalue}", "--limit ${params.busco_limit}" ].join(' ').replaceAll("\\s{2,}", " ").trim() -options.subdir = params.run_name +options.subdir = params.busco_lineage options.logs_use_prefix = true include { BUSCO as BUSCO_MODULE } from '../../../modules/nf-core/busco/main' addParams( options: options ) diff --git a/subworkflows/local/busco/test.yml b/subworkflows/local/busco/test.yml index fd4c03e9..591049ee 100644 --- a/subworkflows/local/busco/test.yml +++ b/subworkflows/local/busco/test.yml @@ -4,30 +4,30 @@ - busco - bactopia-tools files: - - path: bactopia/bactopia-runs/busco/merged-results/busco.tsv - md5sum: 15267d2162b35514e27bfca0a32b8e5c - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.begin - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.err - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.log - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.out - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.run + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/busco.tsv + md5sum: b5118703a4b6ef1274f9f894ebe2ed5c + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.begin + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.err + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.log + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.out + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.sh + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.sh contains: ['csvtk', 'END_VERSIONS'] - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/nf-merged-results.trace + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/nf-merged-results.trace contains: ['nextflow.trace'] - - path: bactopia/bactopia-runs/busco/merged-results/logs/busco-concat/versions.yml + - path: bactopia/bactopia-runs/busco-bacteria_odb10/merged-results/logs/busco-concat/versions.yml md5sum: b45e81d6e1c8a0b37a7b3ea491992002 - - path: bactopia/bactopia-runs/busco/nf-reports/busco-dag.dot + - path: bactopia/bactopia-runs/busco-bacteria_odb10/nf-reports/busco-dag.dot contains: ['buscodag', 'BUSCO', 'versions'] - - path: bactopia/bactopia-runs/busco/nf-reports/busco-report.html + - path: bactopia/bactopia-runs/busco-bacteria_odb10/nf-reports/busco-report.html contains: ['html', 'Nextflow', 'Report'] - - path: bactopia/bactopia-runs/busco/nf-reports/busco-timeline.html + - path: bactopia/bactopia-runs/busco-bacteria_odb10/nf-reports/busco-timeline.html contains: ['html', 'Nextflow', 'timeline'] - - path: bactopia/bactopia-runs/busco/nf-reports/busco-trace.txt + - path: bactopia/bactopia-runs/busco-bacteria_odb10/nf-reports/busco-trace.txt contains: ['task_id'] - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/GCF_000292685-summary.txt - md5sum: 15267d2162b35514e27bfca0a32b8e5c + md5sum: b5118703a4b6ef1274f9f894ebe2ed5c - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/logs/bbtools_err.log - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/logs/bbtools_out.log - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/logs/busco.log @@ -56,41 +56,31 @@ - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/logs/prodigal_out.log md5sum: 50752acb1c5a20be886bfdfc06635bcb - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/logs/versions.yml - md5sum: fdd6b94718c21dd4c370acf841aafc92 + md5sum: 79800901f8e3462158093c07bc2aeba9 - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/prodigal_output/.checkpoint - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/prodigal_output/predicted_genes/predicted.faa - md5sum: 8166471fc5f08c82fd5643ab42327f9d - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/prodigal_output/predicted_genes/predicted.fna md5sum: ddc508a18f60e7f3314534df50cdf8ca - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.faa - md5sum: 8166471fc5f08c82fd5643ab42327f9d - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.fna md5sum: ddc508a18f60e7f3314534df50cdf8ca - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/.bbtools_output/.checkpoint - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences/1272633at2.faa - md5sum: bc3d8e3ec26129fb17110134822fc8cd - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences/1272633at2.fna - md5sum: c9d955773c7433464d5886d56c4cbf58 - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/1054741at2.faa - md5sum: a8f004eb3c63433eafe2e3886e680c85 - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/1054741at2.fna - md5sum: bb5835b69e7e09f1661a09b75df4887b - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/1132353at2.faa - md5sum: 85494768d2a27813a97e2e55e3e8424b - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/1132353at2.fna - md5sum: 955560ad0799a224a8e2c0ea033a91a7 - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/961486at2.faa - md5sum: e70105bd9c0a92b6d442d9d48333e22a - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences/961486at2.fna - md5sum: 421d326188a45e6e0101a5448e200ba5 - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/full_table.tsv - md5sum: c9651b88b10871abc260ee655898e828 + contains: ["BUSCO", "Complete", "Fragmented", "Missing"] - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/hmmer_output/.checkpoint - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/hmmer_output/1054741at2.out - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/hmmer_output/1132353at2.out - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/hmmer_output/961486at2.out - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/missing_busco_list.tsv - md5sum: 9939309df2da5419de88c32d1435c779 + contains: ["BUSCO", "at2"] - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/short_summary.json contains: ["one_line_summary", "dataset"] - path: bactopia/GCF_000292685/tools/busco/bacteria_odb10/run_bacteria_odb10/short_summary.txt diff --git a/subworkflows/local/gubbins/test.yml b/subworkflows/local/gubbins/test.yml index b56ccf12..60ddef97 100644 --- a/subworkflows/local/gubbins/test.yml +++ b/subworkflows/local/gubbins/test.yml @@ -9,10 +9,10 @@ - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.filtered_polymorphic_sites.phylip md5sum: 15efec56c27103e2f777d946a297d399 - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.final_tree.tre - md5sum: e1a69691e9ca439db36d1544f482f403 + contains: ["GCF_902713755", "GCF_000298385", "GCF_002849995", "GCF_000300075"] - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.masked.aln.gz - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.node_labelled.final_tree.tre - md5sum: accd0e5733897e53534c70dc24f8e74e + contains: ["GCF_902713755", "GCF_000298385", "GCF_002849995", "GCF_000300075"] - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.per_branch_statistics.csv md5sum: 2dc0dbae9a7cf545bfc56ac5d734342d - path: bactopia/bactopia-runs/gubbins/gubbins/gubbins.recombination_predictions.embl.gz @@ -34,7 +34,7 @@ - path: bactopia/bactopia-runs/gubbins/gubbins/logs/nf-gubbins.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/gubbins/gubbins/logs/versions.yml - md5sum: 0720185e5a55ffba81a6fd4828be73ee + md5sum: 9ddc482d1d3ed3782ea8fecf9db5306c - path: bactopia/bactopia-runs/gubbins/nf-reports/gubbins-dag.dot contains: ['gubbinsdag', 'GUBBINS', 'versions'] - path: bactopia/bactopia-runs/gubbins/nf-reports/gubbins-report.html diff --git a/subworkflows/local/k2scrubber/main.nf b/subworkflows/local/k2scrubber/main.nf new file mode 100644 index 00000000..216d309b --- /dev/null +++ b/subworkflows/local/k2scrubber/main.nf @@ -0,0 +1,50 @@ +// +// k2scrubber - Scrub human reads from FASTQ files using Kraken2 and human pangenome reference +// + +include { initOptions } from '../../../lib/nf/functions' + +// HPRC download options +wget_opts = initOptions(params.containsKey("options") ? params.options : [:], 'wget') +wget_opts.args = [ + params.no_check_certificate ? "--no-check-certificate" : "", + "-O k2_HPRC_20230810.tar.gz", + "https://zenodo.org/records/8339732/files/k2_HPRC_20230810.tar.gz?download=1", +].join(' ').replaceAll("\\s{2,}", " ").trim() +wget_opts.args2 = "k2_HPRC_20230810.tar.gz" + +// Kraken2 Options +k2_options = initOptions(params.containsKey("options") ? params.options : [:], 'kraken2') +k2_options.args = [ + params.quick_mode ? "--quick" : "", + params.use_mpa_style ? "--use-mpa-style" : "", + params.report_zero_counts ? "--report-zero-counts" : "", + params.report_minimizer_data ? "--report-minimizer-data" : "", + params.use_names ? "--use-names" : "", + params.memory_mapping ? "--memory-mapping" : "", + "--confidence ${params.confidence}", + "--minimum-hit-groups ${params.minimum_hit_groups}", + "--minimum-base-quality ${params.minimum_base_quality}" +].join(' ').replaceAll("\\s{2,}", " ").trim() + +include { CUSTOM_WGET as WGET_HPRC } from '../../../modules/nf-core/custom/wget/main' addParams( options: wget_opts ) +include { KRAKEN2 } from '../../../modules/nf-core/kraken2/main' addParams( options: k2_options ) + +workflow K2SCRUBBER { + take: + reads // channel: [ val(meta), [ fasta ] ] + + main: + ch_versions = Channel.empty() + + WGET_HPRC() + KRAKEN2(reads, WGET_HPRC.out.download) + ch_versions = ch_versions.mix(KRAKEN2.out.versions) + + emit: + scrubbed = KRAKEN2.out.unclassified + human = KRAKEN2.out.classified + kraken2_report = KRAKEN2.out.kraken2_report + scrub_report = KRAKEN2.out.scrub_report + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/local/k2scrubber/meta.yml b/subworkflows/local/k2scrubber/meta.yml new file mode 100644 index 00000000..59369c13 --- /dev/null +++ b/subworkflows/local/k2scrubber/meta.yml @@ -0,0 +1,51 @@ +name: k2scrubber +description: Scrub human reads from FASTQ files using Kraken2 and human pangenome reference +icon: false +keywords: + - TAGS +modules: + - LIST_OF_MODULES +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +docs: + meta: + title: k2scrubber + description: > + A Bactopia Tool which uses... + introduction: | + The `k2scrubber` module uses... + output: + tree: | + + add_note: false + folders: + - name: Top Level + description: | + Below are results that are in the base directory. + table: | + | Filename | Description | + |-------------|-------------| + | | | + - name: k2scrubber + description: | + Below is a description of the _per-sample_ results from [k2scrubber](SUBWORKFLOW_LINK). + table: | + | Filename | Description | + |-----------------------|-------------| + | | | + citations: + - add to citations.yml diff --git a/subworkflows/local/k2scrubber/test.nf b/subworkflows/local/k2scrubber/test.nf new file mode 100644 index 00000000..0d4cde8b --- /dev/null +++ b/subworkflows/local/k2scrubber/test.nf @@ -0,0 +1,35 @@ +#!/usr/bin/env nextflow +nextflow.enable.dsl = 2 + +include { K2SCRUBBER } from './main.nf' + +workflow test_k2scrubber { + + inputs = tuple( ) + + K2SCRUBBER ( inputs ) +} + + +include { SCRUBBER } from './main.nf' addParams(scrubber_db: params.test_data['datasets']['scrubber']) + +workflow test_scrubber_pe { + + inputs = tuple( + [ id:"SRR2838702", single_end:false ], + [file(params.test_data['species']['portiera']['illumina']['r1'], checkIfExists: true), + file(params.test_data['species']['portiera']['illumina']['r2'], checkIfExists: true)] + ) + + SCRUBBER ( inputs ) +} + +workflow test_scrubber_se { + + inputs = tuple( + [ id:"SRR2838702", single_end:true ], + [file(params.test_data['species']['portiera']['illumina']['se'], checkIfExists: true)] + ) + + SCRUBBER ( inputs ) +} diff --git a/subworkflows/local/k2scrubber/test.yml b/subworkflows/local/k2scrubber/test.yml new file mode 100644 index 00000000..e5657549 --- /dev/null +++ b/subworkflows/local/k2scrubber/test.yml @@ -0,0 +1,64 @@ +- name: k2scrubber-test-pe + command: bash -c 'nextflow run ./subworkflows/local/scrubber/test.nf -entry test_scrubber_pe --wf scrubber -c nextflow.config ${BACTOPIA_ARGS}' + tags: + - k2scrubber + - bactopia-tools + files: + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-dag.dot + contains: ['scrubberdag', 'scrubber', 'versions'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-report.html + contains: ['html', 'Nextflow', 'Report'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-timeline.html + contains: ['html', 'Nextflow', 'timeline'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-trace.txt + contains: ['task_id'] + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702_R1.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702_R2.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.begin + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.err + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.log + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.out + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.run + contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.sh + contains: ['scrub', 'END_VERSIONS'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.trace + contains: ['nextflow.trace'] + - path: bactopia/SRR2838702/tools/scrubber/logs/versions.yml + md5sum: 9223d0f9690923042b457b010e88d45c + +- name: k2scrubber-test-se + command: bash -c 'nextflow run ./subworkflows/local/scrubber/test.nf -entry test_scrubber_se --wf scrubber -c nextflow.config ${BACTOPIA_ARGS}' + tags: + - k2scrubber + - bactopia-tools + files: + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-dag.dot + contains: ['scrubberdag', 'scrubber', 'versions'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-report.html + contains: ['html', 'Nextflow', 'Report'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-timeline.html + contains: ['html', 'Nextflow', 'timeline'] + - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-trace.txt + contains: ['task_id'] + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.begin + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.err + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.log + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.out + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.run + contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.sh + contains: ['scrub', 'END_VERSIONS'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.trace + contains: ['nextflow.trace'] + - path: bactopia/SRR2838702/tools/scrubber/logs/versions.yml + md5sum: 2feea5bb3fda5f9fe18d461b430ac276 diff --git a/subworkflows/local/panaroo/test.yml b/subworkflows/local/panaroo/test.yml index 8eebb9ea..8b2a19b4 100644 --- a/subworkflows/local/panaroo/test.yml +++ b/subworkflows/local/panaroo/test.yml @@ -58,9 +58,9 @@ - path: bactopia/bactopia-runs/panaroo/panaroo/logs/nf-panaroo.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/panaroo/panaroo/logs/versions.yml - md5sum: b43b05d590ef8086ccc4cd7f5040d4d0 + md5sum: 52678674115cb226f088d2cde569b8c9 - path: bactopia/bactopia-runs/panaroo/panaroo/pan_genome_reference.fa - md5sum: d0b03cdfaab8965d86cb1045db3c2d20 + contains: ["dnaK", "nuoN", "glyQ"] - path: bactopia/bactopia-runs/panaroo/panaroo/pre_filt_graph.gml contains: ["lengths", "graph", "node"] - path: bactopia/bactopia-runs/panaroo/panaroo/struct_presence_absence.Rtab diff --git a/subworkflows/local/plasmidfinder/test.yml b/subworkflows/local/plasmidfinder/test.yml index 2ca85ff3..2351aabc 100644 --- a/subworkflows/local/plasmidfinder/test.yml +++ b/subworkflows/local/plasmidfinder/test.yml @@ -18,7 +18,7 @@ - path: bactopia/bactopia-runs/plasmidfinder/merged-results/logs/plasmidfinder-concat/versions.yml contains: ['csvtk'] - path: bactopia/bactopia-runs/plasmidfinder/merged-results/plasmidfinder.tsv - md5sum: 7aa17dc82d1efd058422d8e0cc45db1a + contains: ['Sample', 'GCF_000017085', 'aureus'] - path: bactopia/bactopia-runs/plasmidfinder/nf-reports/plasmidfinder-dag.dot contains: ['plasmidfinderdag', 'PLASMIDFINDER', 'versions'] - path: bactopia/bactopia-runs/plasmidfinder/nf-reports/plasmidfinder-report.html @@ -34,7 +34,7 @@ - path: bactopia/GCF_000017085/tools/plasmidfinder/GCF_000017085.json contains: ["plasmidfinder", "results", "RepA", "GCF_000017085"] - path: bactopia/GCF_000017085/tools/plasmidfinder/GCF_000017085.tsv - md5sum: 7aa17dc82d1efd058422d8e0cc45db1a + contains: ['Sample', 'GCF_000017085', 'aureus'] - path: bactopia/GCF_000017085/tools/plasmidfinder/GCF_000017085.txt contains: ['Results', 'Plasmid', 'Query', 'template'] - path: bactopia/GCF_000017085/tools/plasmidfinder/logs/nf-plasmidfinder.begin diff --git a/subworkflows/local/scrubber/test.yml b/subworkflows/local/scrubber/test.yml index 5349942b..597f8aba 100644 --- a/subworkflows/local/scrubber/test.yml +++ b/subworkflows/local/scrubber/test.yml @@ -5,31 +5,31 @@ - bactopia-tools files: - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-dag.dot - contains: ['scrubberdag', 'SRAHUMANSCRUBBER', 'versions'] + contains: ['scrubberdag', 'scrubber', 'versions'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-report.html contains: ['html', 'Nextflow', 'Report'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-timeline.html contains: ['html', 'Nextflow', 'timeline'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-trace.txt contains: ['task_id'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/SRR2838702_R1.scrubbed.fastq.gz - - path: bactopia/SRR2838702/tools/srahumanscrubber/SRR2838702_R2.scrubbed.fastq.gz - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.begin + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702_R1.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702_R2.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.begin md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.err - contains: ['aligns_to', 'FastaReader', 'total'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.log - contains: ['aligns_to', 'FastaReader', 'total'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.out + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.err + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.log + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.out md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.run + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.sh + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.sh contains: ['scrub', 'END_VERSIONS'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.trace + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.trace contains: ['nextflow.trace'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/versions.yml - md5sum: 6964d293234668d561237412de067eec + - path: bactopia/SRR2838702/tools/scrubber/logs/versions.yml + md5sum: 9223d0f9690923042b457b010e88d45c - name: scrubber-test-se command: bash -c 'nextflow run ./subworkflows/local/scrubber/test.nf -entry test_scrubber_se --wf scrubber -c nextflow.config ${BACTOPIA_ARGS}' @@ -38,27 +38,27 @@ - bactopia-tools files: - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-dag.dot - contains: ['scrubberdag', 'SRAHUMANSCRUBBER', 'versions'] + contains: ['scrubberdag', 'scrubber', 'versions'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-report.html contains: ['html', 'Nextflow', 'Report'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-timeline.html contains: ['html', 'Nextflow', 'timeline'] - path: bactopia/bactopia-runs/scrubber/nf-reports/scrubber-trace.txt contains: ['task_id'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/SRR2838702.scrubbed.fastq.gz - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.begin + - path: bactopia/SRR2838702/tools/scrubber/SRR2838702.scrubbed.fastq.gz + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.begin md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.err - contains: ['aligns_to', 'FastaReader', 'total'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.log - contains: ['aligns_to', 'FastaReader', 'total'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.out + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.err + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.log + contains: ['Loading', 'classified', 'unclassified'] + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.out md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.run + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.run contains: ['NEXTFLOW TASK', '$NXF_ENTRY'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.sh + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.sh contains: ['scrub', 'END_VERSIONS'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/nf-srahumanscrubber.trace + - path: bactopia/SRR2838702/tools/scrubber/logs/nf-scrubber.trace contains: ['nextflow.trace'] - - path: bactopia/SRR2838702/tools/srahumanscrubber/logs/versions.yml - md5sum: 7f879dc589c9f00beaf3551c06cc0b95 + - path: bactopia/SRR2838702/tools/scrubber/logs/versions.yml + md5sum: 2feea5bb3fda5f9fe18d461b430ac276 diff --git a/subworkflows/local/sistr/test.yml b/subworkflows/local/sistr/test.yml index 544883d0..db9817e3 100644 --- a/subworkflows/local/sistr/test.yml +++ b/subworkflows/local/sistr/test.yml @@ -45,4 +45,4 @@ - path: bactopia/GCF_016028495/tools/sistr/logs/nf-sistr.trace contains: ['nextflow.trace'] - path: bactopia/GCF_016028495/tools/sistr/logs/versions.yml - md5sum: 9ce214ed7a2ba7b43b59e3a87553fccc + md5sum: 92799fc66ab9a577152eeb7e2186bc7e diff --git a/subworkflows/local/snippy/test.yml b/subworkflows/local/snippy/test.yml index cbaab5f4..60b0f439 100644 --- a/subworkflows/local/snippy/test.yml +++ b/subworkflows/local/snippy/test.yml @@ -35,7 +35,7 @@ - path: bactopia/bactopia-runs/snippy/gubbins/logs/nf-gubbins.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/snippy/gubbins/logs/versions.yml - md5sum: 06e837b60e52d63b0f5b53d25f63924d + md5sum: f4bc8f0efac4a9d957a06ac5efb2853c - path: bactopia/bactopia-runs/snippy/iqtree/core-snp.alninfo md5sum: b0fba4469a915df9872ca077eb2cf808 - path: bactopia/bactopia-runs/snippy/iqtree/core-snp.bionj @@ -98,7 +98,7 @@ - path: bactopia/bactopia-runs/snippy/snippy-core/logs/nf-snippy-core.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/snippy/snippy-core/logs/versions.yml - md5sum: 0362757dde048c5c4f118e8ec2256330 + md5sum: d491166dddb81e68df7da2e8a8695985 - path: bactopia/bactopia-runs/snippy/snpdists/core-snp.distance.tsv md5sum: eca1078f443287c1bfdac84cdbce50b5 - path: bactopia/bactopia-runs/snippy/snpdists/logs/nf-snpdists.begin @@ -133,7 +133,7 @@ - path: bactopia/test0/tools/snippy/snippy/logs/test0.log contains: ["snippy", "snpEff", "test0", "consensus"] - path: bactopia/test0/tools/snippy/snippy/logs/versions.yml - md5sum: b2fc8299d29a9b4c2cda418ecb04592d + md5sum: 83e1315aaa8e45a6fc36e669334f22d6 - path: bactopia/test0/tools/snippy/snippy/test0.aligned.fa.gz - path: bactopia/test0/tools/snippy/snippy/test0.annotated.vcf.gz - path: bactopia/test0/tools/snippy/snippy/test0.bam @@ -171,7 +171,7 @@ - path: bactopia/test1/tools/snippy/snippy/logs/test1.log contains: ["snippy", "snpEff", "test1", "consensus"] - path: bactopia/test1/tools/snippy/snippy/logs/versions.yml - md5sum: b2fc8299d29a9b4c2cda418ecb04592d + md5sum: 83e1315aaa8e45a6fc36e669334f22d6 - path: bactopia/test1/tools/snippy/snippy/test1.aligned.fa.gz - path: bactopia/test1/tools/snippy/snippy/test1.annotated.vcf.gz - path: bactopia/test1/tools/snippy/snippy/test1.bam @@ -209,7 +209,7 @@ - path: bactopia/test2/tools/snippy/snippy/logs/test2.log contains: ["snippy", "snpEff", "test2", "consensus"] - path: bactopia/test2/tools/snippy/snippy/logs/versions.yml - md5sum: b2fc8299d29a9b4c2cda418ecb04592d + md5sum: 83e1315aaa8e45a6fc36e669334f22d6 - path: bactopia/test2/tools/snippy/snippy/test2.aligned.fa.gz - path: bactopia/test2/tools/snippy/snippy/test2.annotated.vcf.gz - path: bactopia/test2/tools/snippy/snippy/test2.bam @@ -247,7 +247,7 @@ - path: bactopia/test3/tools/snippy/snippy/logs/test3.log contains: ["snippy", "snpEff", "test3", "consensus"] - path: bactopia/test3/tools/snippy/snippy/logs/versions.yml - md5sum: b2fc8299d29a9b4c2cda418ecb04592d + md5sum: 83e1315aaa8e45a6fc36e669334f22d6 - path: bactopia/test3/tools/snippy/snippy/test3.aligned.fa.gz - path: bactopia/test3/tools/snippy/snippy/test3.annotated.vcf.gz - path: bactopia/test3/tools/snippy/snippy/test3.bam @@ -285,7 +285,7 @@ - path: bactopia/test4/tools/snippy/snippy/logs/test4.log contains: ["snippy", "snpEff", "test4", "consensus"] - path: bactopia/test4/tools/snippy/snippy/logs/versions.yml - md5sum: b2fc8299d29a9b4c2cda418ecb04592d + md5sum: 83e1315aaa8e45a6fc36e669334f22d6 - path: bactopia/test4/tools/snippy/snippy/test4.aligned.fa.gz - path: bactopia/test4/tools/snippy/snippy/test4.annotated.vcf.gz - path: bactopia/test4/tools/snippy/snippy/test4.bam @@ -345,7 +345,7 @@ - path: bactopia/bactopia-runs/snippy/gubbins/logs/nf-gubbins.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/snippy/gubbins/logs/versions.yml - md5sum: e763a9a67609a03acd4dfec3e2071234 + md5sum: dc520752b4284352ee7e847a0eba8afc - path: bactopia/bactopia-runs/snippy/iqtree/core-snp.alninfo md5sum: 3538bdd4729b861eb66eb3e69060812d - path: bactopia/bactopia-runs/snippy/iqtree/core-snp.bionj @@ -408,7 +408,7 @@ - path: bactopia/bactopia-runs/snippy/snippy-core/logs/nf-snippy-core.trace contains: ['nextflow.trace'] - path: bactopia/bactopia-runs/snippy/snippy-core/logs/versions.yml - md5sum: 02f01df9b4b6a6be837acbc9bced050a + md5sum: db38179edfe377c5d2f5b325e1d32357 - path: bactopia/bactopia-runs/snippy/snpdists/core-snp.distance.tsv md5sum: eca1078f443287c1bfdac84cdbce50b5 - path: bactopia/bactopia-runs/snippy/snpdists/logs/nf-snpdists.begin @@ -443,7 +443,7 @@ - path: bactopia/test0/tools/snippy/snippy/logs/test0.log contains: ["snippy", "snpEff", "test0", "consensus"] - path: bactopia/test0/tools/snippy/snippy/logs/versions.yml - md5sum: 90cc2953b8258a258cbdf45e82689115 + md5sum: 06a418bccf2e26153a11324f523cd2ab - path: bactopia/test0/tools/snippy/snippy/test0.aligned.fa.gz - path: bactopia/test0/tools/snippy/snippy/test0.annotated.vcf.gz - path: bactopia/test0/tools/snippy/snippy/test0.bam @@ -481,7 +481,7 @@ - path: bactopia/test1/tools/snippy/snippy/logs/test1.log contains: ["snippy", "snpEff", "test1", "consensus"] - path: bactopia/test1/tools/snippy/snippy/logs/versions.yml - md5sum: 90cc2953b8258a258cbdf45e82689115 + md5sum: 06a418bccf2e26153a11324f523cd2ab - path: bactopia/test1/tools/snippy/snippy/test1.aligned.fa.gz - path: bactopia/test1/tools/snippy/snippy/test1.annotated.vcf.gz - path: bactopia/test1/tools/snippy/snippy/test1.bam @@ -519,7 +519,7 @@ - path: bactopia/test2/tools/snippy/snippy/logs/test2.log contains: ["snippy", "snpEff", "test2", "consensus"] - path: bactopia/test2/tools/snippy/snippy/logs/versions.yml - md5sum: 90cc2953b8258a258cbdf45e82689115 + md5sum: 06a418bccf2e26153a11324f523cd2ab - path: bactopia/test2/tools/snippy/snippy/test2.aligned.fa.gz - path: bactopia/test2/tools/snippy/snippy/test2.annotated.vcf.gz - path: bactopia/test2/tools/snippy/snippy/test2.bam @@ -557,7 +557,7 @@ - path: bactopia/test3/tools/snippy/snippy/logs/test3.log contains: ["snippy", "snpEff", "test3", "consensus"] - path: bactopia/test3/tools/snippy/snippy/logs/versions.yml - md5sum: 90cc2953b8258a258cbdf45e82689115 + md5sum: 06a418bccf2e26153a11324f523cd2ab - path: bactopia/test3/tools/snippy/snippy/test3.aligned.fa.gz - path: bactopia/test3/tools/snippy/snippy/test3.annotated.vcf.gz - path: bactopia/test3/tools/snippy/snippy/test3.bam @@ -595,7 +595,7 @@ - path: bactopia/test4/tools/snippy/snippy/logs/test4.log contains: ["snippy", "snpEff", "test4", "consensus"] - path: bactopia/test4/tools/snippy/snippy/logs/versions.yml - md5sum: 90cc2953b8258a258cbdf45e82689115 + md5sum: 06a418bccf2e26153a11324f523cd2ab - path: bactopia/test4/tools/snippy/snippy/test4.aligned.fa.gz - path: bactopia/test4/tools/snippy/snippy/test4.annotated.vcf.gz - path: bactopia/test4/tools/snippy/snippy/test4.bam diff --git a/subworkflows/local/srahumanscrubber/main.nf b/subworkflows/local/srahumanscrubber/main.nf new file mode 100644 index 00000000..8b9013f9 --- /dev/null +++ b/subworkflows/local/srahumanscrubber/main.nf @@ -0,0 +1,35 @@ +// +// srahumanscrubber - Scrub human reads from FASTQ files using SRA Human Scrubber +// + +include { initOptions } from '../../../lib/nf/functions' +options = initOptions(params.containsKey("options") ? params.options : [:], 'srahumanscrubber') +options.is_module = params.wf == 'scrubber' ? true : false +options.args = "" +options.ignore = [".db"] + +include { SRAHUMANSCRUBBER_INITDB } from '../../../modules/nf-core/srahumanscrubber/initdb/main' addParams( ) + +if (params.wf == 'teton') { + include { SRAHUMANSCRUBBER_SCRUB_TETON as SRAHUMANSCRUBBER_SCRUB } from '../../../modules/nf-core/srahumanscrubber/scrub/main' addParams( options: options ) +} else if (params.wf == 'cleanyerreads') { + include { SRAHUMANSCRUBBER_SCRUB_MAIN as SRAHUMANSCRUBBER_SCRUB } from '../../../modules/nf-core/srahumanscrubber/scrub/main' addParams( options: options ) +} else { + include { SRAHUMANSCRUBBER_SCRUB } from '../../../modules/nf-core/srahumanscrubber/scrub/main' addParams( options: options ) +} + +workflow SCRUBBER { + take: + reads // channel: [ val(meta), [ reads ] ] + + main: + ch_versions = Channel.empty() + + SRAHUMANSCRUBBER_INITDB() + SRAHUMANSCRUBBER_SCRUB(reads, SRAHUMANSCRUBBER_INITDB.out.db) + ch_versions = ch_versions.mix(SRAHUMANSCRUBBER_SCRUB.out.versions.first()) + + emit: + scrubbed = SRAHUMANSCRUBBER_SCRUB.out.scrubbed + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/local/srahumanscrubber/meta.yml b/subworkflows/local/srahumanscrubber/meta.yml new file mode 100644 index 00000000..5d0db579 --- /dev/null +++ b/subworkflows/local/srahumanscrubber/meta.yml @@ -0,0 +1,51 @@ +name: srahumanscrubber +description: Scrub human reads from FASTQ files using SRA Human Scrubber +icon: false +keywords: + - TAGS +modules: + - LIST_OF_MODULES +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +docs: + meta: + title: srahumanscrubber + description: > + A Bactopia Tool which uses... + introduction: | + The `srahumanscrubber` module uses... + output: + tree: | + + add_note: false + folders: + - name: Top Level + description: | + Below are results that are in the base directory. + table: | + | Filename | Description | + |-------------|-------------| + | | | + - name: srahumanscrubber + description: | + Below is a description of the _per-sample_ results from [srahumanscrubber](SUBWORKFLOW_LINK). + table: | + | Filename | Description | + |-----------------------|-------------| + | | | + citations: + - add to citations.yml diff --git a/subworkflows/local/srahumanscrubber/test.nf b/subworkflows/local/srahumanscrubber/test.nf new file mode 100644 index 00000000..d51fee69 --- /dev/null +++ b/subworkflows/local/srahumanscrubber/test.nf @@ -0,0 +1,11 @@ +#!/usr/bin/env nextflow +nextflow.enable.dsl = 2 + +include { SRAHUMANSCRUBBER } from './main.nf' + +workflow test_srahumanscrubber { + + inputs = tuple( ) + + SRAHUMANSCRUBBER ( inputs ) +} diff --git a/subworkflows/local/srahumanscrubber/test.yml b/subworkflows/local/srahumanscrubber/test.yml new file mode 100644 index 00000000..178551ba --- /dev/null +++ b/subworkflows/local/srahumanscrubber/test.yml @@ -0,0 +1,10 @@ +- name: srahumanscrubber-test + command: bash -c 'nextflow run ./subworkflows/local/srahumanscrubber/test.nf -entry test_srahumanscrubber --wf srahumanscrubber -c nextflow.config ${BACTOPIA_ARGS}' + tags: + - srahumanscrubber + - bactopia-tools + files: + - path: OUTPUTFILE + contains: ['TEXT_A', 'TEXT_B'] + - path: OUTPUTFILE + md5sum: a1000000000000000000000000000000