Skip to content

Commit

Permalink
more test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
rpetit3 committed Mar 24, 2024
1 parent 485a78f commit 6560a95
Show file tree
Hide file tree
Showing 33 changed files with 657 additions and 138 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Expand Up @@ -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

Expand Down
59 changes: 59 additions & 0 deletions 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))
2 changes: 1 addition & 1 deletion conf/params.config
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions modules/nf-core/abritamr/run/main.nf
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions modules/nf-core/ariba/getref/main.nf
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion modules/nf-core/busco/params.config
Expand Up @@ -13,5 +13,5 @@ params {
augustus_parameters = ""
augustus_species = ""
augustus_long = false
run_name = params.busco_lineage
run_name = "${params.wf}-${params.busco_lineage}"
}
35 changes: 35 additions & 0 deletions 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
"""
}
24 changes: 24 additions & 0 deletions 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"
4 changes: 2 additions & 2 deletions modules/nf-core/gubbins/main.nf
Expand Up @@ -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)
Expand Down
12 changes: 9 additions & 3 deletions modules/nf-core/kraken2/main.nf
Expand Up @@ -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
"""
Expand Down Expand Up @@ -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
Expand Down
90 changes: 90 additions & 0 deletions 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"
}
]
}
2 changes: 1 addition & 1 deletion modules/nf-core/kraken2/params.json
Expand Up @@ -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
}
Expand Down
4 changes: 2 additions & 2 deletions modules/nf-core/sistr/main.nf
Expand Up @@ -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)
Expand Down
44 changes: 22 additions & 22 deletions subworkflows/local/abricate/test.yml
Expand Up @@ -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
2 changes: 1 addition & 1 deletion subworkflows/local/abritamr/test.yml
Expand Up @@ -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
Expand Down

0 comments on commit 6560a95

Please sign in to comment.