From 8306e9c2d61ac1336fc289d1b1b0523bff17fa2b Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:41:45 -0600 Subject: [PATCH 01/24] removed versions --- modules/local/local.nf | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/modules/local/local.nf b/modules/local/local.nf index 26dc810..98acc0c 100644 --- a/modules/local/local.nf +++ b/modules/local/local.nf @@ -43,7 +43,6 @@ process download_sra { output: tuple val(SRR), file("reads/${SRR}_{1,2}.fastq.gz"), emit: fastq path "logs/${task.process}/*.log", emit: log - path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -63,11 +62,6 @@ process download_sra { wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/\${sra:0:6}/0\${sra: -2 }/${SRR}/${SRR}_2.fastq.gz mv *fastq.gz reads/. - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sratools: \$(fasterq-dump --version 2>&1 | grep -Eo '[0-9.]+') - END_VERSIONS """ } @@ -284,7 +278,7 @@ process references { tag "Preparing references" // no publishDir label "process_single" - container 'quay.io/uphl/grandeur_ref:20240124' + container 'quay.io/uphl/grandeur_ref:2024-03-07' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} From 15c3c06142c2f07093fcba2ed6535db882b4f884 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:42:14 -0600 Subject: [PATCH 02/24] updated mlst to 2.23.0-2024-03-11 --- modules/local/mlst.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/mlst.nf b/modules/local/mlst.nf index 4045e2c..da8b573 100644 --- a/modules/local/mlst.nf +++ b/modules/local/mlst.nf @@ -1,8 +1,8 @@ process mlst { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' - container 'staphb/mlst:2.23.0-2024-01' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + container 'staphb/mlst:2.23.0-2024-03-11' maxForks 10 errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10m' From f0c4cd34ac2726485c9a6c5a7ff0187970ee06b6 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:42:42 -0600 Subject: [PATCH 03/24] update to 3.12.8-2024-01-31.1 --- modules/local/amrfinderplus.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/amrfinderplus.nf b/modules/local/amrfinderplus.nf index 6af285c..9c7d9d0 100644 --- a/modules/local/amrfinderplus.nf +++ b/modules/local/amrfinderplus.nf @@ -1,8 +1,8 @@ process amrfinderplus { tag "${meta.id}" label "process_high" - publishDir params.outdir, mode: 'copy' - container 'staphb/ncbi-amrfinderplus:3.11.26-2023-11-15.1' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + container 'staphb/ncbi-amrfinderplus:3.12.8-2024-01-31.1' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '30m' From 08574e435df34ad0e1c83dd6c006712fe305da1a Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:43:56 -0600 Subject: [PATCH 04/24] added saveAs --- modules/local/bbduk.nf | 2 +- modules/local/blast.nf | 2 +- modules/local/blobtools.nf | 6 +++--- modules/local/datasets.nf | 2 +- modules/local/drprg.nf | 2 +- modules/local/elgato.nf | 2 +- modules/local/emmtyper.nf | 2 +- modules/local/kaptive.nf | 2 +- modules/local/kleborate.nf | 2 +- modules/local/kraken2.nf | 2 +- modules/local/seqsero2.nf | 2 +- modules/local/serotypefinder.nf | 2 +- modules/local/shigatyper.nf | 2 +- modules/local/snp-dists.nf | 2 +- modules/local/spades.nf | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/local/bbduk.nf b/modules/local/bbduk.nf index daa8ae2..d686a48 100644 --- a/modules/local/bbduk.nf +++ b/modules/local/bbduk.nf @@ -1,7 +1,7 @@ process bbduk { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/bbtools:39.01' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10m' diff --git a/modules/local/blast.nf b/modules/local/blast.nf index 08e3bc2..5fa73a9 100644 --- a/modules/local/blast.nf +++ b/modules/local/blast.nf @@ -1,7 +1,7 @@ process blastn { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/blast:2.15.0' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '2h' diff --git a/modules/local/blobtools.nf b/modules/local/blobtools.nf index 3997b05..82e0fd0 100644 --- a/modules/local/blobtools.nf +++ b/modules/local/blobtools.nf @@ -1,7 +1,7 @@ process blobtools_create { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'chrishah/blobtools:v1.1.1' time '45m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} @@ -41,7 +41,7 @@ process blobtools_create { process blobtools_view { tag "${meta.id}" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'chrishah/blobtools:v1.1.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} @@ -78,7 +78,7 @@ process blobtools_view { process blobtools_plot { tag "${meta.id}" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'chrishah/blobtools:v1.1.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/datasets.nf b/modules/local/datasets.nf index a81accd..7501948 100644 --- a/modules/local/datasets.nf +++ b/modules/local/datasets.nf @@ -1,7 +1,7 @@ process datasets_summary { tag "${taxon}" label "process_single" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/ncbi-datasets:16.2.0' time '1h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore' } diff --git a/modules/local/drprg.nf b/modules/local/drprg.nf index 6f5acbc..c831d22 100644 --- a/modules/local/drprg.nf +++ b/modules/local/drprg.nf @@ -2,7 +2,7 @@ process drprg { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/drprg:0.1.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/elgato.nf b/modules/local/elgato.nf index 1f1dff8..3b65119 100755 --- a/modules/local/elgato.nf +++ b/modules/local/elgato.nf @@ -1,7 +1,7 @@ process elgato { tag "${meta.id}" label "process_medium" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/elgato:1.15.2' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/emmtyper.nf b/modules/local/emmtyper.nf index 4d029b8..61c6845 100644 --- a/modules/local/emmtyper.nf +++ b/modules/local/emmtyper.nf @@ -2,7 +2,7 @@ process emmtyper { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/emmtyper:0.2.0' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/kaptive.nf b/modules/local/kaptive.nf index 6634ecb..ff274ac 100644 --- a/modules/local/kaptive.nf +++ b/modules/local/kaptive.nf @@ -2,7 +2,7 @@ process kaptive { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/kaptive:2.0.8' time '30m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/kleborate.nf b/modules/local/kleborate.nf index 8f9aa5a..177cd0d 100644 --- a/modules/local/kleborate.nf +++ b/modules/local/kleborate.nf @@ -1,7 +1,7 @@ process kleborate { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/kleborate:2.4.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/kraken2.nf b/modules/local/kraken2.nf index 4013b0a..f701581 100644 --- a/modules/local/kraken2.nf +++ b/modules/local/kraken2.nf @@ -1,7 +1,7 @@ process kraken2 { tag "${meta.id}" label "process_high" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/kraken2:2.1.3' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '1h' diff --git a/modules/local/seqsero2.nf b/modules/local/seqsero2.nf index e75d46e..0be11f5 100644 --- a/modules/local/seqsero2.nf +++ b/modules/local/seqsero2.nf @@ -1,7 +1,7 @@ process seqsero2 { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/seqsero2:1.2.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/serotypefinder.nf b/modules/local/serotypefinder.nf index 7e55135..88d9112 100644 --- a/modules/local/serotypefinder.nf +++ b/modules/local/serotypefinder.nf @@ -1,7 +1,7 @@ process serotypefinder { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/serotypefinder:2.0.1' maxForks 10 time '10m' diff --git a/modules/local/shigatyper.nf b/modules/local/shigatyper.nf index 8a70cf7..d222509 100644 --- a/modules/local/shigatyper.nf +++ b/modules/local/shigatyper.nf @@ -1,7 +1,7 @@ process shigatyper { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/shigatyper:2.0.5' stageInMode 'copy' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/snp-dists.nf b/modules/local/snp-dists.nf index 214785e..f0bdcdd 100644 --- a/modules/local/snp-dists.nf +++ b/modules/local/snp-dists.nf @@ -1,7 +1,7 @@ process snp_dists { tag "SNP matrix" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/snp-dists:0.8.2' maxForks 10 time '2h' diff --git a/modules/local/spades.nf b/modules/local/spades.nf index f8b2ed8..74e58ef 100644 --- a/modules/local/spades.nf +++ b/modules/local/spades.nf @@ -1,7 +1,7 @@ process spades { tag "${meta.id}" label "process_high" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/spades:3.15.5' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '5h' From 9cf2b78d4c7a48b1f96a6ee20d5e6275d77ca27c Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:44:28 -0600 Subject: [PATCH 05/24] moved container to staphb --- modules/local/circulocov.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/circulocov.nf b/modules/local/circulocov.nf index 48deacc..7ecc51d 100755 --- a/modules/local/circulocov.nf +++ b/modules/local/circulocov.nf @@ -2,8 +2,8 @@ process circulocov { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' - container 'quay.io/uphl/circulocov:0.1.20240104-2024-02-21' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + container 'staphb/circulocov:0.1.20240104' time '30m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} From 020d94cf83c049ee4605da4cf27105848e65325e Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:44:59 -0600 Subject: [PATCH 06/24] added saveAs --- modules/local/fastp.nf | 2 +- modules/local/fastqc.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/fastp.nf b/modules/local/fastp.nf index 61ad6c5..ff75702 100644 --- a/modules/local/fastp.nf +++ b/modules/local/fastp.nf @@ -1,7 +1,7 @@ process fastp { tag "${meta.id}" label "process_low" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/fastp:0.23.4' time '30m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/fastqc.nf b/modules/local/fastqc.nf index d25dc03..75f63ee 100644 --- a/modules/local/fastqc.nf +++ b/modules/local/fastqc.nf @@ -1,7 +1,7 @@ process fastqc { tag "${meta.id}" label "process_single" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/fastqc:0.12.1' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} From 9d421979b3ae83b184104f150fcdbec44c8273c2 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 11:45:24 -0600 Subject: [PATCH 07/24] added saveAs --- modules/local/heatcluster.nf | 2 +- modules/local/iqtree2.nf | 2 +- modules/local/mash.nf | 6 +++--- modules/local/mashtree.nf | 2 +- modules/local/multiqc.nf | 2 +- modules/local/mykrobe.nf | 2 +- modules/local/panaroo.nf | 4 ++-- modules/local/pbptyper.nf | 2 +- modules/local/phytreeviz.nf | 4 ++-- modules/local/plasmidfinder.nf | 2 +- modules/local/prokka.nf | 2 +- modules/local/quast.nf | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/local/heatcluster.nf b/modules/local/heatcluster.nf index 72269cf..9958c92 100755 --- a/modules/local/heatcluster.nf +++ b/modules/local/heatcluster.nf @@ -1,7 +1,7 @@ process heatcluster { tag "HeatCluster" label "process_single" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/heatcluster:1.0.2c' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/iqtree2.nf b/modules/local/iqtree2.nf index 8556926..d1ad8f3 100644 --- a/modules/local/iqtree2.nf +++ b/modules/local/iqtree2.nf @@ -1,7 +1,7 @@ process iqtree2 { tag "Phylogenetic analysis" label "process_high" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/iqtree2:2.2.2.7' time '24h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/mash.nf b/modules/local/mash.nf index 4d71d75..c90a31b 100644 --- a/modules/local/mash.nf +++ b/modules/local/mash.nf @@ -1,7 +1,7 @@ process mash_sketch_fastq { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/mash:2.3' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10m' @@ -41,7 +41,7 @@ process mash_sketch_fastq { process mash_sketch_fasta { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/mash:2.3' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10m' @@ -80,7 +80,7 @@ process mash_sketch_fasta { process mash_dist { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/mash:2.3' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10m' diff --git a/modules/local/mashtree.nf b/modules/local/mashtree.nf index 420064e..c7223ec 100755 --- a/modules/local/mashtree.nf +++ b/modules/local/mashtree.nf @@ -1,7 +1,7 @@ process mashtree { tag "Phylogenetic analysis" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/mashtree:1.4.6' stageInMode 'copy' time '4h' diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 1b06f93..6bd2bfc 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -41,7 +41,7 @@ process multiqc { process versions { tag "extracting versions" label "process_single" - publishDir "${params.outdir}/summary", mode: 'copy' + // no publishDir container 'staphb/multiqc:1.19' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/mykrobe.nf b/modules/local/mykrobe.nf index a322877..5a4d757 100644 --- a/modules/local/mykrobe.nf +++ b/modules/local/mykrobe.nf @@ -2,7 +2,7 @@ process mykrobe { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/mykrobe:0.13.0' time '1h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/panaroo.nf b/modules/local/panaroo.nf index 6caaa56..21477c4 100755 --- a/modules/local/panaroo.nf +++ b/modules/local/panaroo.nf @@ -1,7 +1,7 @@ process panaroo { tag "Core Genome Alignment" label "process_high" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/panaroo:1.3.4' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} time '10h' @@ -11,7 +11,7 @@ process panaroo { output: path "panaroo/*" , emit: files - tuple path("panaroo/core_gene_alignment.aln"), path("panaroo/gene_presence_absence.Rtab"), emit: core_gene_alignment + tuple path("panaroo/core_gene_alignment.aln"), path("panaroo/gene_presence_absence.Rtab"), emit: core_gene_alignment, optional: true path "logs/${task.process}/*.log" , emit: log_files path "versions.yml" , emit: versions diff --git a/modules/local/pbptyper.nf b/modules/local/pbptyper.nf index 179b82f..97e8aea 100644 --- a/modules/local/pbptyper.nf +++ b/modules/local/pbptyper.nf @@ -2,7 +2,7 @@ process pbptyper { tag "${meta.id}" label "process_medium" stageInMode "copy" - publishDir path: params.outdir, mode: 'copy' + publishDir path: params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/pbptyper:1.0.4' time '1h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/phytreeviz.nf b/modules/local/phytreeviz.nf index 8324559..e557296 100755 --- a/modules/local/phytreeviz.nf +++ b/modules/local/phytreeviz.nf @@ -1,8 +1,8 @@ process phytreeviz { tag "${analysis}" label "process_medium" - publishDir params.outdir, mode: 'copy' - container 'staphb/phytreeviz:0.1.0' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + container 'staphb/phytreeviz:0.2.0' time '1h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/plasmidfinder.nf b/modules/local/plasmidfinder.nf index 3e28218..767beb3 100644 --- a/modules/local/plasmidfinder.nf +++ b/modules/local/plasmidfinder.nf @@ -1,7 +1,7 @@ process plasmidfinder { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/plasmidfinder:2.1.6' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/prokka.nf b/modules/local/prokka.nf index 4c22a0e..e3eec08 100644 --- a/modules/local/prokka.nf +++ b/modules/local/prokka.nf @@ -1,7 +1,7 @@ process prokka { tag "${meta.id}" label "process_high" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/prokka:1.14.6' time '2h' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} diff --git a/modules/local/quast.nf b/modules/local/quast.nf index 736b7e3..f20af34 100644 --- a/modules/local/quast.nf +++ b/modules/local/quast.nf @@ -1,7 +1,7 @@ process quast { tag "${meta.id}" label "process_medium" - publishDir params.outdir, mode: 'copy' + publishDir params.outdir, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } container 'staphb/quast:5.2.0' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} From 38dae3dcba4fd36c711c0623bc4a10a7a5935eb4 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 12:07:54 -0600 Subject: [PATCH 08/24] added software versions and multiqc --- .github/workflows/add_fastani_ref.yml | 6 ++++++ .github/workflows/current.yml | 2 ++ .github/workflows/ecoli.yml | 2 ++ .github/workflows/klebsiella.yml | 2 ++ .github/workflows/legionella.yml | 2 ++ .github/workflows/myco.yml | 2 ++ .github/workflows/phylogenetic_workflow.yml | 2 ++ .github/workflows/run_workflow.yml | 2 ++ .github/workflows/salmonella.yml | 2 ++ .github/workflows/strepA.yml | 2 ++ .github/workflows/strep_pneumo.yml | 2 ++ .github/workflows/test.yml | 5 ++++- .github/workflows/vibrio.yml | 2 ++ .github/workflows/withoutfastani.yml | 2 ++ 14 files changed, 34 insertions(+), 1 deletion(-) diff --git a/.github/workflows/add_fastani_ref.yml b/.github/workflows/add_fastani_ref.yml index c0bcd8e..0c7b263 100755 --- a/.github/workflows/add_fastani_ref.yml +++ b/.github/workflows/add_fastani_ref.yml @@ -64,17 +64,23 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas --fastani_ref_list fastani_ref_list.txt cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Run Grandeur with refs run: | nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas -resume --fastani_ref GCA_009665515.2_ASM966551v2_genomic.fna.gz,GCA_009763645.1_ASM976364v1_genomic.fna.gz --outdir grandeur2 cat grandeur2/grandeur_summary.tsv + cat grandeur2/summary/software_versions.yml + ls grandeur2/multiqc/multiqc_report.html - name: Run Grandeur with refs and ref list run: | nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas -resume --fastani_ref_list fastani_ref_list.txt --fastani_ref GCA_009665515.2_ASM966551v2_genomic.fna.gz,GCA_009763645.1_ASM976364v1_genomic.fna.gz --outdir grandeur3 cat grandeur3/grandeur_summary.tsv + cat grandeur3/summary/software_versions.yml + ls grandeur3/multiqc/multiqc_report.html \ No newline at end of file diff --git a/.github/workflows/current.yml b/.github/workflows/current.yml index 569af02..43b725b 100644 --- a/.github/workflows/current.yml +++ b/.github/workflows/current.yml @@ -33,3 +33,5 @@ jobs: nextflow run . -profile docker --current_datasets -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html diff --git a/.github/workflows/ecoli.yml b/.github/workflows/ecoli.yml index 84c5b99..26f90e2 100644 --- a/.github/workflows/ecoli.yml +++ b/.github/workflows/ecoli.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check E. coli file run: | diff --git a/.github/workflows/klebsiella.yml b/.github/workflows/klebsiella.yml index d17798f..8f847c9 100755 --- a/.github/workflows/klebsiella.yml +++ b/.github/workflows/klebsiella.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Klebsiella file run: | diff --git a/.github/workflows/legionella.yml b/.github/workflows/legionella.yml index 9edfa38..22eef66 100644 --- a/.github/workflows/legionella.yml +++ b/.github/workflows/legionella.yml @@ -36,6 +36,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Legionella file run: | diff --git a/.github/workflows/myco.yml b/.github/workflows/myco.yml index 887d8ce..a4634e3 100755 --- a/.github/workflows/myco.yml +++ b/.github/workflows/myco.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Mycobacterium file run: | diff --git a/.github/workflows/phylogenetic_workflow.yml b/.github/workflows/phylogenetic_workflow.yml index 0274b23..f1a440e 100644 --- a/.github/workflows/phylogenetic_workflow.yml +++ b/.github/workflows/phylogenetic_workflow.yml @@ -33,6 +33,8 @@ jobs: nextflow run . -profile docker,msa -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check MSA files run: | diff --git a/.github/workflows/run_workflow.yml b/.github/workflows/run_workflow.yml index 731c31b..5a70bf1 100644 --- a/.github/workflows/run_workflow.yml +++ b/.github/workflows/run_workflow.yml @@ -29,6 +29,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --reads reads cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check summary files run: | diff --git a/.github/workflows/salmonella.yml b/.github/workflows/salmonella.yml index 857b6cb..04ca863 100644 --- a/.github/workflows/salmonella.yml +++ b/.github/workflows/salmonella.yml @@ -38,6 +38,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fasta_list fastas.txt cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Salmonella file run: | diff --git a/.github/workflows/strepA.yml b/.github/workflows/strepA.yml index f745df0..7db4fa8 100644 --- a/.github/workflows/strepA.yml +++ b/.github/workflows/strepA.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Strep pneumo file run: | diff --git a/.github/workflows/strep_pneumo.yml b/.github/workflows/strep_pneumo.yml index 7db1bef..605411e 100644 --- a/.github/workflows/strep_pneumo.yml +++ b/.github/workflows/strep_pneumo.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Strep pneumo file run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 32b40e4..7b69314 100755 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,10 @@ jobs: - name: Run Grandeur run: | nextflow run . -profile docker,test0 -c .github/workflows/github_actions.config - + cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html + - name: Check contig files run: | for file in grandeur/contigs/*_contigs.fa diff --git a/.github/workflows/vibrio.yml b/.github/workflows/vibrio.yml index 41ef271..daa467b 100644 --- a/.github/workflows/vibrio.yml +++ b/.github/workflows/vibrio.yml @@ -35,6 +35,8 @@ jobs: nextflow run . -profile docker -c .github/workflows/github_actions.config --fastas fastas cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check Vibrio species run: | diff --git a/.github/workflows/withoutfastani.yml b/.github/workflows/withoutfastani.yml index 77c6cac..7dab3d0 100644 --- a/.github/workflows/withoutfastani.yml +++ b/.github/workflows/withoutfastani.yml @@ -33,6 +33,8 @@ jobs: nextflow run . -profile docker,msa -c .github/workflows/github_actions.config --fastas fastas --exclude_top_hit cat grandeur/grandeur_summary.tsv + cat grandeur/summary/software_versions.yml + ls grandeur/multiqc/multiqc_report.html - name: Check MSA files run: | From f1c8fb5e92afe38d188777ee5d7e3c7168917bf4 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 12:08:26 -0600 Subject: [PATCH 09/24] removed sra versions --- main.nf | 1 - subworkflows/test.nf | 1 - 2 files changed, 2 deletions(-) diff --git a/main.nf b/main.nf index b925e65..2101d61 100644 --- a/main.nf +++ b/main.nf @@ -327,7 +327,6 @@ workflow { if ( ! params.sra_accessions.isEmpty() ) { test(ch_sra_accessions) ch_raw_reads = ch_reads.mix(test.out.fastq) - ch_versions = ch_versions.mix(test.out.versions) } else { ch_raw_reads = ch_reads } diff --git a/subworkflows/test.nf b/subworkflows/test.nf index 7dc6ab8..fec5ed5 100644 --- a/subworkflows/test.nf +++ b/subworkflows/test.nf @@ -15,5 +15,4 @@ workflow test { emit: fastq = ch_fastq - versions = download_sra.out.versions.first() } \ No newline at end of file From 70bc2ffc5c307a21ec982920f6a0e4d644b72a4e Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 12:08:47 -0600 Subject: [PATCH 10/24] publish software_versions.yml --- modules/local/multiqc.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 6bd2bfc..1215905 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -41,7 +41,7 @@ process multiqc { process versions { tag "extracting versions" label "process_single" - // no publishDir + publishDir "${params.outdir}/summary/", mode: 'copy', pattern: 'software_versions.yml' container 'staphb/multiqc:1.19' time '10m' errorStrategy { task.attempt < 2 ? 'retry' : 'ignore'} From 11f4849b9c3ec1c3c05895bb825c3376eb18229a Mon Sep 17 00:00:00 2001 From: Erin Young Date: Tue, 12 Mar 2024 12:10:06 -0600 Subject: [PATCH 11/24] update to 4.0.20240312 --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index c206a75..0118f61 100644 --- a/nextflow.config +++ b/nextflow.config @@ -3,7 +3,7 @@ manifest { author = 'Erin Young' homePage = 'https://github.com/UPHL-BioNGS/Grandeur' mainScript = 'main.nf' - version = '4.0.20240214' + version = '4.0.20240312' defaultBranch = 'main' description = 'Grandeur is short-read de novo assembly pipeline with serotyping.' } From 6e94f09207c371ca8fc1b4a2dc7291b832713bff Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 12:35:09 -0600 Subject: [PATCH 12/24] added custom headers --- bin/for_multiqc.py | 575 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 549 insertions(+), 26 deletions(-) diff --git a/bin/for_multiqc.py b/bin/for_multiqc.py index a6c7a0d..7d0e78e 100755 --- a/bin/for_multiqc.py +++ b/bin/for_multiqc.py @@ -62,6 +62,14 @@ ########################################## if exists(blobtools_input) : + line = "# plot_type: 'bargraph'\n" + line = line + "# section_name: 'Blobtools'\n" + line = line + "# description: 'Visualisation, quality control and taxonomic partitioning of genome datasets'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + with open(blobtools_output,'w') as f: + f.write(line) + blobtools_df = pd.read_table(blobtools_input) blobtools_df = blobtools_df[~blobtools_df['name'].isin(['all', 'no-hit', 'undef'])] @@ -78,27 +86,114 @@ blobtools_result_df.loc[len(blobtools_result_df.index)] = result - blobtools_result_df.to_csv(blobtools_output, index=False, sep="\t") + blobtools_result_df.to_csv(blobtools_output, index=False, sep="\t", mode='a') if exists(drprg_input): + # sample genes_present genes_absent susceptibility + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'Dr. PRG'\n" + line = line + "# description: 'Drug resistance Prediction with Reference Graphs'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# format: 'tsv'\n" + with open(drprg_output,'w') as f: + f.write(line) + drprg_df = pd.read_table(drprg_input) - drprg_df.to_csv(drprg_output, index=False, sep="\t") + drprg_df.to_csv(drprg_output, index=False, sep="\t", mode='a') if exists(circulocov_input): + # sample circ contigs length illumina_numreads illumina_covbases illumina_coverage illumina_meandepth + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'CirculoCov'\n" + line = line + "# description: 'Coverage Estimates through Mapping'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# length:\n" + line = line + "# title: 'length'\n" + line = line + "# description: 'Total length'\n" + line = line + "# illumina_numreads:\n" + line = line + "# title: 'numreads'\n" + line = line + "# description: 'illumina_numreads'\n" + line = line + "# illumina_covbases:\n" + line = line + "# title: 'covbases'\n" + line = line + "# description: 'illumina_covbases'\n" + line = line + "# illumina_coverage:\n" + line = line + "# title: 'coverage'\n" + line = line + "# description: 'illumina_coverage'\n" + line = line + "# illumina_meandepth:\n" + line = line + "# title: 'meandepth'\n" + line = line + "# description: 'illumina_meandepth'\n" + with open(circulocov_output,'w') as f: + f.write(line) + circulocov_df = pd.read_table(circulocov_input) circulocov_df = circulocov_df[circulocov_df['contigs'] == 'all'] circulocov_df = circulocov_df.drop(['circ', 'contigs'], axis=1) - circulocov_df.to_csv(circulocov_output, index=False, sep="\t") + circulocov_df.to_csv(circulocov_output, index=False, sep="\t", mode='a') if exists(elgato_input): + # Sample ST flaA pilE asd mip mompS proA neuA_neuAH + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'el_gato'\n" + line = line + "# description: 'Epidemiology of Legionella : Genome-bAsed Typing'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# ST:\n" + line = line + "# title: 'ST'\n" + line = line + "# description: 'ST'\n" + with open(elgato_output,'w') as f: + f.write(line) + elgato_df = pd.read_table(elgato_input) - elgato_df.to_csv(elgato_output, index=False, sep="\t") + elgato_df.to_csv(elgato_output, index=False, sep="\t", mode='a') if exists(emmtyper_input): + # sample Isolate name Number of BLAST hits Number of clusters Predicted emm-type Position(s) Possible emm-like alleles emm-like position(s) EMM cluster + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'emmtyper'\n" + line = line + "# description: 'Emm Automatic Isolate Labeller'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# Number of BLAST hits:\n" + line = line + "# title: 'Number of BLAST hits'\n" + line = line + "# description: 'Number of BLAST hits'\n" + line = line + "# Number of clusters:\n" + line = line + "# title: 'Number of clusters'\n" + line = line + "# description: 'Number of clusters'\n" + line = line + "# Predicted emm-type:\n" + line = line + "# title: 'Predicted emm-type'\n" + line = line + "# description: 'Predicted emm-type'\n" + line = line + "# Position(s):\n" + line = line + "# title: 'Position(s)'\n" + line = line + "# description: 'Position(s)'\n" + line = line + "# Possible emm-like alleles:\n" + line = line + "# title: 'Possible emm-like alleles'\n" + line = line + "# description: 'Possible emm-like alleles'\n" + line = line + "# emm-like position(s):\n" + line = line + "# title: 'emm-like position(s)'\n" + line = line + "# description: 'emm-like position(s)'\n" + line = line + "# EMM cluster:\n" + line = line + "# title: 'EMM cluster'\n" + line = line + "# description: 'EMM cluster'\n" + with open(emmtyper_output,'w') as f: + f.write(line) + emmtyper_df = pd.read_table(emmtyper_input) - emmtyper_df.to_csv(emmtyper_output, index=False, sep="\t") + emmtyper_df.to_csv(emmtyper_output, index=False, sep="\t", mode='a') if exists(mash_input) : + line = "# plot_type: 'bargraph'\n" + line = line + "# section_name: 'Mash dist'\n" + line = line + "# description: 'Fast genome and metagenome distance estimation using MinHash'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + with open(mash_output,'w') as f: + f.write(line) + mash_df = pd.read_csv(mash_input) samples = mash_df['sample'].drop_duplicates().tolist() organisms = sorted(mash_df['organism'].drop_duplicates().tolist()) @@ -106,7 +201,7 @@ for sample in samples: df_len = len(mash_result_df) - mash_result_df.loc[df_len] = pd.Series() + mash_result_df.loc[df_len] = pd.Series(dtype='str') mash_result_df.at[df_len, "sample"] = sample sample_df = mash_df[mash_df['sample'] == sample].copy() @@ -123,75 +218,506 @@ #counts_df = counts_df.transpose() #mash_result_df = pd.concat([mash_result_df, counts_df], axis=0, join='outer') - mash_result_df = mash_result_df.fillna(0) - mash_result_df.to_csv(mash_output, index=False) + mash_result_df = mash_result_df.astype(str).fillna("0") + mash_result_df.to_csv(mash_output, index=False,mode='a') if exists(fastani_input): + # sample,query,reference,ANI estimate,total query sequence fragments,fragments aligned as orthologous matches + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'FastANI'\n" + line = line + "# description: 'Fast alignment-free computation of whole-genome Average Nucleotide Identity (ANI)'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# sample:\n" + line = line + "# title: 'sample'\n" + line = line + "# description: 'sample'\n" + line = line + "# reference:\n" + line = line + "# title: 'reference'\n" + line = line + "# description: 'reference'\n" + line = line + "# ANI estimate:\n" + line = line + "# title: 'ANI estimate'\n" + line = line + "# description: 'ANI estimate'\n" + line = line + "# total query sequence:\n" + line = line + "# title: 'total query sequence'\n" + line = line + "# description: 'total query sequence'\n" + line = line + "# fragments aligned as orthologous matches:\n" + line = line + "# title: 'fragments aligned as orthologous matches'\n" + line = line + "# description: 'fragments aligned as orthologous matches'\n" + with open(fastani_output,'w') as f: + f.write(line) + fastani_df = pd.read_csv(fastani_input) - fastani_df.to_csv(fastani_output) + fastani_df = fastani_df[fastani_df['ANI estimate'] > 90] + fastani_df.to_csv(fastani_output, mode='a') if exists(shigatyper_hit_input): + # sample Hit Number of reads Length Covered reference length % covered Number of variants % accuracy + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'ShigaTyper Hits'\n" + line = line + "# description: 'ShigaTyper Hits'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# sample:\n" + line = line + "# title: 'sample'\n" + line = line + "# description: 'sample'\n" + line = line + "# Hit:\n" + line = line + "# title: 'Hit'\n" + line = line + "# description: 'Hit'\n" + with open(shigatyper_hit_output,'w') as f: + f.write(line) + shigatyper_df = pd.read_table(shigatyper_hit_input) shigatyper_df = shigatyper_df.drop(shigatyper_df.columns[1], axis=1) shigatyper_df = shigatyper_df.iloc[:, :2] - shigatyper_df.to_csv(shigatyper_hit_output, sep="\t") + shigatyper_df.to_csv(shigatyper_hit_output, sep="\t", mode='a') #if [ -f 'shigatyper_results.txt' ] ; then awk '{print \$1 "_" \$2 "\t" \$3}' shigatyper_results.txt > shigatyper_mqc.tsv ; fi if exists(shigatyper_input): + # sample prediction ipaB notes + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'ShigaTyper'\n" + line = line + "# description: 'Shigella serotype'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# prediction:\n" + line = line + "# title: 'prediction'\n" + line = line + "# description: 'prediction'\n" + line = line + "# ipaB:\n" + line = line + "# title: 'ipaB'\n" + line = line + "# description: 'ipaB'\n" + line = line + "# notes:\n" + line = line + "# title: 'notes'\n" + line = line + "# description: 'notes'\n" + with open(shigatyper_output,'w') as f: + f.write(line) + shigatyper_df = pd.read_table(shigatyper_input) - shigatyper_df.to_csv(shigatyper_output, index=False, sep="\t") + shigatyper_df.to_csv(shigatyper_output, index=False, sep="\t", mode='a') if exists(amrfinder_input): + # Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'AMRFinderPlus'\n" + line = line + "# description: 'NCBI Antimicrobial Resistance Gene Finder'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# Name:\n" + line = line + "# title: 'Name'\n" + line = line + "# description: 'Name'\n" + line = line + "# Contig id:\n" + line = line + "# title: 'Contig id'\n" + line = line + "# description: 'Contig gene was found on'\n" + line = line + "# Start:\n" + line = line + "# title: 'Start'\n" + line = line + "# description: 'Start position of AMR gene'\n" + line = line + "# Stop:\n" + line = line + "# title: 'Stop'\n" + line = line + "# description: 'Stop position of AMR gene'\n" + # line = line + "# Strand:\n" + # line = line + "# title: 'Strand'\n" + # line = line + "# description: 'Strand of AMR gene'\n" + line = line + "# Gene symbol:\n" + line = line + "# title: 'Gene symbol'\n" + line = line + "# description: 'Gene symbol'\n" + # line = line + "# Sequence name:\n" + # line = line + "# title: 'Sequence name'\n" + # line = line + "# description: 'Sequence name'\n" + line = line + "# Scope:\n" + line = line + "# title: 'Scope'\n" + line = line + "# description: 'Scope'\n" + line = line + "# Element type:\n" + line = line + "# title: 'Element type'\n" + line = line + "# description: 'Element type'\n" + line = line + "# Element subtype:\n" + line = line + "# title: 'Element subtype'\n" + line = line + "# description: 'Element subtype'\n" + line = line + "# Class:\n" + line = line + "# title: 'Class'\n" + line = line + "# description: 'Class'\n" + line = line + "# Subclass:\n" + line = line + "# title: 'Subclass'\n" + line = line + "# description: 'Subclass'\n" + # line = line + "# Method:\n" + # line = line + "# title: 'Method'\n" + # line = line + "# description: 'Method'\n" + # line = line + "# Target length:\n" + # line = line + "# title: 'Target length'\n" + # line = line + "# description: 'Target length'\n" + # line = line + "# Reference sequence length:\n" + # line = line + "# title: 'Reference sequence length'\n" + # line = line + "# description: 'Reference sequence length'\n" + line = line + "# Per Coverage of reference sequence:\n" + line = line + "# title: '% Coverage of reference sequence'\n" + line = line + "# description: '% Coverage of reference sequence'\n" + line = line + "# Per Identity to reference sequence:\n" + line = line + "# title: '% Identity to reference sequence'\n" + line = line + "# description: '% Identity to reference sequence'\n" + line = line + "# Alignment length:\n" + line = line + "# title: 'Alignment length'\n" + line = line + "# description: 'Alignment length'\n" + line = line + "# Accession of closest sequence:\n" + line = line + "# title: 'Accession of closest sequence'\n" + line = line + "# description: 'Accession of closest sequence'\n" + line = line + "# Name of closest sequence:\n" + line = line + "# title: 'Name of closest sequence'\n" + line = line + "# description: 'Name of closest sequence'\n" + with open(amrfinder_output,'w') as f: + f.write(line) + amrfinder_df = pd.read_table(amrfinder_input) - amrfinder_df = amrfinder_df.replace(' ', '_', regex=True) - amrfinder_df.to_csv(amrfinder_output, sep="\t") + amrfinder_df = amrfinder_df.replace('%', 'Per', regex=True) + #amrfinder_df = amrfinder_df.replace(' ', '_', regex=True) + amrfinder_df.to_csv(amrfinder_output, sep="\t", mode='a') if exists(kaptive_input): + # Assembly Best match locus Best match type Match confidence Problems Coverage Identity Length discrepancy Expected genes in locus Expected genes in locus, details Missing expected genes Other genes in locus Other genes in locus, details Expected genes outside locus Expected genes outside locus, details Other genes outside locus Other genes outside locus, details + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'Kaptive'\n" + line = line + "# description: 'Vibrio species complex'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# Assembly:\n" + line = line + "# title: 'Assembly'\n" + line = line + "# description: 'Assembly'\n" + line = line + "# Best match locus:\n" + line = line + "# title: 'Best match locus'\n" + line = line + "# description: 'Best match locus'\n" + line = line + "# Best match type:\n" + line = line + "# title: 'Best match type'\n" + line = line + "# description: 'Best match type'\n" + line = line + "# Match confidence:\n" + line = line + "# title: 'Match confidence'\n" + line = line + "# description: 'Match confidence'\n" + line = line + "# Problems:\n" + line = line + "# title: 'Problems'\n" + line = line + "# description: 'Problems'\n" + line = line + "# Coverage:\n" + line = line + "# title: 'Coverage'\n" + line = line + "# description: 'Coverage'\n" + line = line + "# Identity:\n" + line = line + "# title: 'Identity'\n" + line = line + "# description: 'Identity'\n" + line = line + "# Length discrepancy:\n" + line = line + "# title: 'Length discrepancy'\n" + line = line + "# description: 'Length discrepancy'\n" + line = line + "# Expected genes in locus:\n" + line = line + "# title: 'Expected genes in locus'\n" + line = line + "# description: 'Expected genes in locus'\n" + line = line + "# Expected genes in locus, details:\n" + line = line + "# title: 'Expected genes in locus, details'\n" + line = line + "# description: 'Expected genes in locus, details'\n" + line = line + "# Missing expected genes:\n" + line = line + "# title: 'Missing expected genes'\n" + line = line + "# description: 'Missing expected genes'\n" + line = line + "# Other genes in locus:\n" + line = line + "# title: 'Other genes in locus'\n" + line = line + "# description: 'Other genes in locus'\n" + line = line + "# Other genes in locus, details:\n" + line = line + "# title: 'Other genes in locus, details'\n" + line = line + "# description: 'Other genes in locus, details'\n" + line = line + "# Expected genes outside locus:\n" + line = line + "# title: 'Expected genes outside locus'\n" + line = line + "# description: 'Expected genes outside locus'\n" + line = line + "# Expected genes outside locus, details:\n" + line = line + "# title: 'Expected genes outside locus, details'\n" + line = line + "# description: 'Expected genes outside locus, details'\n" + line = line + "# Other genes outside locus:\n" + line = line + "# title: 'Other genes outside locus'\n" + line = line + "# description: 'Other genes outside locus'\n" + line = line + "# Other genes outside locus, details:\n" + line = line + "# title: 'Other genes outside locus, details'\n" + line = line + "# description: 'Other genes outside locus, details'\n" + with open(kaptive_output,'w') as f: + f.write(line) + kaptive_df = pd.read_table(kaptive_input) kaptive_df = kaptive_df.replace(' ', '_', regex=True) - kaptive_df.to_csv(kaptive_output, index=True, sep="\t") + kaptive_df.to_csv(kaptive_output, index=True, sep="\t", mode='a') if exists(kleborate_input): + # sample strain species species_match contig_count N50 largest_contig total_size ambiguous_bases QC_warnings ST virulence_score resistance_score num_resistance_classes num_resistance_genes Yersiniabactin YbST Colibactin CbST Aerobactin AbST Salmochelin SmST RmpADC RmST rmpA2 wzi K_locus K_type K_locus_problems K_locus_confidence K_locus_identity K_locus_missing_genes O_locus O_type O_locus_problems O_locus_confidence O_locus_identity O_locus_missing_genes AGly_acquired Col_acquired Fcyn_acquired Flq_acquired Gly_acquired MLS_acquired Phe_acquired Rif_acquired Sul_acquired Tet_acquired Tgc_acquired Tmt_acquired Bla_acquired Bla_inhR_acquired Bla_ESBL_acquired Bla_ESBL_inhR_acquired Bla_Carb_acquired Bla_chr SHV_mutations Omp_mutations Col_mutations Flq_mutations truncated_resistance_hits spurious_resistance_hits Chr_ST gapA infB mdh pgi phoE rpoB tonB ybtS ybtX ybtQ ybtP ybtA irp2 irp1ybtU ybtT ybtE fyuA clbA clbB clbC clbD clbE clbF clbG clbH clbI clbL clbM clbN clbO clbP clbQ iucA iucB iucC iucD iutA iroB iroC iroD iroN rmpArmpD rmpC spurious_virulence_hits + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'Kleborate'\n" + line = line + "# description: 'Virulence Scoring'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# strain:\n" + line = line + "# title: 'strain'\n" + line = line + "# description: 'strain'\n" + line = line + "# species:\n" + line = line + "# title: 'species'\n" + line = line + "# description: 'species'\n" + line = line + "# species_match:\n" + line = line + "# title: 'species_match'\n" + line = line + "# description: 'species_match'\n" + line = line + "# virulence_score:\n" + line = line + "# title: 'virulence_score'\n" + line = line + "# description: 'virulence_score'\n" + line = line + "# resistance_score:\n" + line = line + "# title: 'resistance_score'\n" + line = line + "# description: 'resistance_score'\n" + line = line + "# contig_count:\n" + line = line + "# title: 'contig_count'\n" + line = line + "# description: 'contig_count'\n" + line = line + "# N50:\n" + line = line + "# title: 'N50'\n" + line = line + "# description: 'N50'\n" + line = line + "# largest_contig:\n" + line = line + "# title: 'largest_contig'\n" + line = line + "# description: 'largest_contig'\n" + line = line + "# total_size:\n" + line = line + "# title: 'total_size'\n" + line = line + "# description: 'total_size'\n" + line = line + "# ambiguous_bases:\n" + line = line + "# title: 'ambiguous_bases'\n" + line = line + "# description: 'ambiguous_bases'\n" + line = line + "# QC_warnings:\n" + line = line + "# title: 'QC_warnings'\n" + line = line + "# description: 'QC_warnings'\n" + line = line + "# ST:\n" + line = line + "# title: 'ST'\n" + line = line + "# description: 'ST'\n" + with open(kleborate_output,'w') as f: + f.write(line) + kleborate_df = pd.read_table(kleborate_input) kleborate_df = kleborate_df.iloc[:, [1] + list(range(2, 12))] - kleborate_df.to_csv(kleborate_output, index=False, sep="\t") + kleborate_df.to_csv(kleborate_output, index=False, sep="\t", mode='a') #if [ -f 'kleborate_results.tsv' ] ; then cut -f 1,3-12 kleborate_results.tsv > kleborate_mqc.tsv ; fi if exists(mlst_input): + # sample filename matching PubMLST scheme ST ID1 ID2 ID3 ID4 ID5 ID6 ID7 ID8 ID9 ID10 ID11 ID12 ID13 ID14 ID15 + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'mlst'\n" + line = line + "# description: 'Scan contig files against traditional PubMLST typing schemes'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# matching PubMLST scheme:\n" + line = line + "# title: 'matching PubMLST scheme'\n" + line = line + "# description: 'matching PubMLST scheme'\n" + line = line + "# ST:\n" + line = line + "# title: 'ST'\n" + line = line + "# description: 'ST'\n" + with open(mlst_output,'w') as f: + f.write(line) + mlst_df = pd.read_table(mlst_input) mlst_df = mlst_df.replace(' ', '_', regex=True) mlst_df = mlst_df.loc[:, ['sample', 'matching PubMLST scheme', 'ST']] - mlst_df.to_csv(mlst_output, index=False, sep="\t") + mlst_df.to_csv(mlst_output, index=False, sep="\t", mode='a') + +if exists(mykrobe_input): + # "sample","drug","susceptibility","variants (dna_variant-AA_variant:ref_kmer_count:alt_kmer_count:conf) [use --format json for more info]","genes (prot_mut-ref_mut:percent_covg:depth) [use --format json for more info]","mykrobe_version","files","probe_sets","genotype_model","kmer_size","phylo_group","species","lineage","phylo_group_per_covg","species_per_covg","lineage_per_covg","phylo_group_depth","species_depth","lineage_depth" + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'Mykrobe'\n" + line = line + "# description: 'Mycobacteria taxonomy and names'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# drug:\n" + line = line + "# title: 'drug'\n" + line = line + "# description: 'drug'\n" + line = line + "# susceptibility:\n" + line = line + "# title: 'susceptibility'\n" + line = line + "# description: 'susceptibility'\n" + line = line + "# phylo_group:\n" + line = line + "# title: 'phylo_group'\n" + line = line + "# description: 'phylo_group'\n" + line = line + "# species:\n" + line = line + "# title: 'species'\n" + line = line + "# description: 'species'\n" + line = line + "# lineage:\n" + line = line + "# title: 'lineage'\n" + line = line + "# description: 'lineage'\n" + with open(mykrobe_output,'w') as f: + f.write(line) + + mykrobe_df = pd.read_csv(mykrobe_input) + mykrobe_df.to_csv(mykrobe_output, index=False, mode='a') if exists (pbp_input): + # sample pbptype ani 1A_coverage 1A_pident 1A_bitscore 2B_coverage 2B_pident 2B_bitscore 2X_coverage 2X_pident 2X_bitscore comment + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'pbptyper'\n" + line = line + "# description: 'In silico Penicillin Binding Protein (PBP) typer for Streptococcus pneumoniae assemblies'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# pbptype:\n" + line = line + "# title: 'pbptype'\n" + line = line + "# description: 'pbptype'\n" + line = line + "# ani:\n" + line = line + "# title: 'ani'\n" + line = line + "# description: 'ani'\n" + line = line + "# 1A_coverage:\n" + line = line + "# title: '1A_coverage'\n" + line = line + "# description: '1A_coverage'\n" + line = line + "# 1A_pident:\n" + line = line + "# title: '1A_pident'\n" + line = line + "# description: '1A_pident'\n" + line = line + "# 1A_bitscore:\n" + line = line + "# title: '1A_bitscore'\n" + line = line + "# description: '1A_bitscore'\n" + line = line + "# 2B_coverage:\n" + line = line + "# title: '2B_coverage'\n" + line = line + "# description: '2B_coverage'\n" + line = line + "# 2B_pident:\n" + line = line + "# title: '2B_pident'\n" + line = line + "# description: '2B_pident'\n" + line = line + "# 2B_bitscore:\n" + line = line + "# title: '2B_bitscore'\n" + line = line + "# description: '2B_bitscore'\n" + line = line + "# 2X_coverage:\n" + line = line + "# title: '2X_coverage'\n" + line = line + "# description: '2X_coverage'\n" + line = line + "# 2X_pident:\n" + line = line + "# title: '2X_pident'\n" + line = line + "# description: '2X_pident'\n" + line = line + "# 2X_bitscore:\n" + line = line + "# title: '2X_bitscore'\n" + line = line + "# description: '2X_bitscore'\n" + line = line + "# comment:\n" + line = line + "# title: 'comment'\n" + line = line + "# description: 'comment'\n" + with open(pbp_output,'w') as f: + f.write(line) + pbp_df = pd.read_table(pbp_input) - pbp_df.to_csv(pbp_output, index=False, sep="\t") + pbp_df.to_csv(pbp_output, index=False, sep="\t", mode='a') if exists(plasmidfinder_input): + # sample Database Plasmid Identity Query / Template length Contig Position in contig Note Accession number + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'PlasmidFinder'\n" + line = line + "# description: 'Identifies plasmids in total or partial sequenced isolates of bacteria.n'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# Database:\n" + line = line + "# title: 'Database'\n" + line = line + "# description: 'Database'\n" + line = line + "# Plasmid Identity:\n" + line = line + "# title: 'Plasmid Identity'\n" + line = line + "# description: 'Plasmid Identity'\n" + line = line + "# Query / Template length:\n" + line = line + "# title: 'Query / Template length'\n" + line = line + "# description: 'Query / Template length'\n" + line = line + "# Contig:\n" + line = line + "# title: 'Contig'\n" + line = line + "# description: 'Contig'\n" + line = line + "# Position in contig:\n" + line = line + "# title: 'Position in contig'\n" + line = line + "# description: 'Position in contig'\n" + line = line + "# Note:\n" + line = line + "# title: 'Note'\n" + line = line + "# description: 'Note'\n" + line = line + "# Accession number:\n" + line = line + "# title: 'Accession number'\n" + line = line + "# description: 'Accession number'\n" + with open(plasmidfinder_output,'w') as f: + f.write(line) + plasmidfinder_df = pd.read_table(plasmidfinder_input) - plasmidfinder_df = plasmidfinder_df.iloc[:, :5] - plasmidfinder_df.to_csv(plasmidfinder_output, sep="\t") + #plasmidfinder_df = plasmidfinder_df.iloc[:, :5] + plasmidfinder_df.to_csv(plasmidfinder_output, sep="\t", mode='a') #if [ -f 'plasmidfinder_result.tsv' ] ; then awk '{ print \$1 "_" NR "\t" \$2 "\t" \$3 "\t" \$4 "\t" \$5 }' plasmidfinder_result.tsv > plasmidfinder_mqc.tsv ; fi if exists(seqsero2_input): + # sample Output directory Input files O antigen prediction H1 antigen prediction(fliC) H2 antigen prediction(fljB) Predicted identification Predicted antigenic profile Predicted serotype Note + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'SeqSero2'\n" + line = line + "# description: 'Salmonella serotype prediction from genome sequencing data.'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# O antigen prediction:\n" + line = line + "# title: 'O antigen prediction'\n" + line = line + "# description: 'O antigen prediction'\n" + line = line + "# H1 antigen prediction(fliC):\n" + line = line + "# title: 'H1 antigen prediction(fliC)'\n" + line = line + "# description: 'H1 antigen prediction(fliC)'\n" + line = line + "# H2 antigen prediction(fljB):\n" + line = line + "# title: 'H2 antigen prediction(fljB)'\n" + line = line + "# description: 'H2 antigen prediction(fljB)'\n" + line = line + "# Predicted identification:\n" + line = line + "# title: 'Predicted identification'\n" + line = line + "# description: 'Predicted identification'\n" + line = line + "# Predicted antigenic profile:\n" + line = line + "# title: 'Predicted antigenic profile'\n" + line = line + "# description: 'Predicted antigenic profile'\n" + line = line + "# Predicted serotype:\n" + line = line + "# title: 'Predicted serotype'\n" + line = line + "# description: 'Predicted serotype'\n" + line = line + "# Note:\n" + line = line + "# title: 'Note'\n" + line = line + "# description: 'Note'\n" + with open(seqsero2_output,'w') as f: + f.write(line) + seqsero2_df = pd.read_table(seqsero2_input) - seqsero2_df = seqsero2_df.iloc[:, [0] + list(range(3, 10))] - seqsero2_df.to_csv(seqsero2_output, index=False, sep="\t") + #seqsero2_df = seqsero2_df.iloc[:, [0] + list(range(3, 10))] + seqsero2_df.to_csv(seqsero2_output, index=False, sep="\t", mode='a') #if [ -f 'seqsero2_results.txt' ] ; then cut -f 1,4-10 seqsero2_results.txt > seqsero2_mqc.txt ; fi if exists(serotypefinder_input): + # sample Database Gene Serotype Identity Template / HSP length Contig Position in contig Accession number + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'SerotypeFinder'\n" + line = line + "# description: 'SerotypeFinder identifies the serotype in total or partial sequenced isolates of E. coli.'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# headers:\n" + line = line + "# sample:\n" + line = line + "# title: 'sample'\n" + line = line + "# description: 'sample'\n" + line = line + "# Database:\n" + line = line + "# title: 'Database'\n" + line = line + "# description: 'Database'\n" + line = line + "# Gene:\n" + line = line + "# title: 'Gene'\n" + line = line + "# description: 'Gene'\n" + line = line + "# Serotype:\n" + line = line + "# title: 'Serotype'\n" + line = line + "# description: 'Serotype'\n" + line = line + "# Identity:\n" + line = line + "# title: 'Identity'\n" + line = line + "# description: 'Identity'\n" + line = line + "# Template / HSP length:\n" + line = line + "# title: 'Template / HSP length'\n" + line = line + "# description: 'Template / HSP length'\n" + with open(serotypefinder_output,'w') as f: + f.write(line) + serotypefinder_df = pd.read_table(serotypefinder_input) serotypefinder_df = serotypefinder_df.iloc[:, :6] serotypefinder_df = serotypefinder_df.replace(to_replace=' ', value='', regex=True) serotypefinder_df.columns = serotypefinder_df.columns.str.replace(' ', '') - serotypefinder_df.to_csv(serotypefinder_output, index=True, sep="\t") + serotypefinder_df.to_csv(serotypefinder_output, index=True, sep="\t", mode='a') #if [ -f 'serotypefinder_results.txt' ] ; then cut -f 1-6 serotypefinder_results.txt > serotypefinder_mqc.txt ; fi if exists(core_genome_input): + # core,soft,shell,cloud + line = "# plot_type: 'table'\n" + line = line + "# section_name: 'Core Genome Evaluation'\n" + line = line + "# description: 'Genes Identified'\n" + line = line + "# pconfig:\n" + line = line + "# namespace: 'Cust Data'\n" + line = line + "# format: 'csv'" + with open(core_genome_output,'w') as f: + f.write(line) + core_genome_df = pd.read_csv(core_genome_input) core_genome_df = core_genome_df.loc[:, ['sample', 'core', 'soft', 'shell', 'cloud']] - core_genome_df.to_csv(core_genome_output, index=False) + core_genome_df.to_csv(core_genome_output, index=False, mode='a') + if exists(heatcluster_input): shutil.copyfile(heatcluster_input, heatcluster_output) @@ -204,6 +730,3 @@ if exists(phytreeviz_mshtr_input): shutil.copyfile(phytreeviz_mshtr_input, phytreeviz_mshtr_output) - -if exists(mykrobe_input): - shutil.copyfile(mykrobe_input, mykrobe_output) From 1c08b25d8591a97c7435992b405c4015b5ebff2f Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 13:09:41 -0600 Subject: [PATCH 13/24] attempted to add amrfinder columns --- bin/for_multiqc.py | 16 ++++++++-------- bin/versions.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bin/for_multiqc.py b/bin/for_multiqc.py index 7d0e78e..f1f0cff 100755 --- a/bin/for_multiqc.py +++ b/bin/for_multiqc.py @@ -351,14 +351,14 @@ # line = line + "# title: 'Reference sequence length'\n" # line = line + "# description: 'Reference sequence length'\n" line = line + "# Per Coverage of reference sequence:\n" - line = line + "# title: '% Coverage of reference sequence'\n" - line = line + "# description: '% Coverage of reference sequence'\n" - line = line + "# Per Identity to reference sequence:\n" - line = line + "# title: '% Identity to reference sequence'\n" - line = line + "# description: '% Identity to reference sequence'\n" - line = line + "# Alignment length:\n" - line = line + "# title: 'Alignment length'\n" - line = line + "# description: 'Alignment length'\n" + line = line + "# title: 'Per Coverage'\n" + line = line + "# description: 'Percent Coverage of reference sequence'\n" + line = line + "# Per Identity:\n" + line = line + "# title: 'Per Identity to reference sequence'\n" + line = line + "# description: 'Percent Identity to reference sequence'\n" + # line = line + "# Alignment length:\n" + # line = line + "# title: 'Alignment length'\n" + # line = line + "# description: 'Alignment length'\n" line = line + "# Accession of closest sequence:\n" line = line + "# title: 'Accession of closest sequence'\n" line = line + "# description: 'Accession of closest sequence'\n" diff --git a/bin/versions.py b/bin/versions.py index 38d10c7..8e908b5 100755 --- a/bin/versions.py +++ b/bin/versions.py @@ -46,7 +46,7 @@ def _make_versions_html(versions): ) html.append("") html.append("") - return "\\n".join(html) + return "\n".join(html) def main(): From a91a83ee88fc41b994c616776d11c0fa5ebcde69 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 13:10:24 -0600 Subject: [PATCH 14/24] fixed mlst columns --- bin/summary.py | 104 ++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/bin/summary.py b/bin/summary.py index 0bc19a2..5b42311 100755 --- a/bin/summary.py +++ b/bin/summary.py @@ -562,58 +562,58 @@ def fill_coverage(row): # reducing to the top 1 or 2 results for each analysis final_columns = [ -# general information -'coverage', -'per_core_genome_genes', -'fastqc_total_sequences', -'fastqc_flagged_sequences', -'fastqc_avg_length', -'fastp_passed_reads', -'bbduk_phix_reads', -'quast_#_contigs', -'quast_gc_(%)', -'warnings', -'circulocov_unmapped_reads', -'amrfinder_genes_(per_cov/per_ident)', - -# species -'predicted_organism', -'mlst_matching_PubMLST_scheme', -'mlst_ST', -'fastani_top_organism', -'fastani_top_reference', -'fastani_top_ani_estimate', -'fastani_top_total_query_sequence_fragments', -'fastani_top_fragments_aligned_as_orthologous_matches', -'mash_reference', -'mash_mash-distance', -'mash_p-value', -'mash_matching-hashes', -'mash_organism', -'plasmidfinder_plasmid_(identity)', - -# contamination -'blobtools_organism_(per_mapped_reads)', -'kraken2_organism_(per_fragment)', - -# species specific information -'seqsero2_predicted_antigenic_profile', -'seqsero2_predicted_serotype', -'emmtyper_predicted_emm-type', -'kleborate_virulence_score', -'kleborate_resistance_score', -'kaptive_best_match_locus_O', -'kaptive_best_match_locus_K', -'elgato_st', -'mykrobe_phylo_group', -'mykrobe_species', -'mykrobe_lineage', -'drprg_susceptibility', -'pbptyper_pbptype', -'serotypefinder_Serotype_O', -'serotypefinder_Serotype_H', -'shigatyper_prediction', -'shigatyper_hit'] + # general information + 'coverage', + 'per_core_genome_genes', + 'fastqc_total_sequences', + 'fastqc_flagged_sequences', + 'fastqc_avg_length', + 'fastp_passed_reads', + 'bbduk_phix_reads', + 'quast_#_contigs', + 'quast_gc_(%)', + 'warnings', + 'circulocov_unmapped_reads', + 'amrfinder_genes_(per_cov/per_ident)', + + # species + 'predicted_organism', + 'mlst_matching_pubmlst_scheme', + 'mlst_st', + 'fastani_top_organism', + 'fastani_top_reference', + 'fastani_top_ani_estimate', + 'fastani_top_total_query_sequence_fragments', + 'fastani_top_fragments_aligned_as_orthologous_matches', + 'mash_reference', + 'mash_mash-distance', + 'mash_p-value', + 'mash_matching-hashes', + 'mash_organism', + 'plasmidfinder_plasmid_(identity)', + + # contamination + 'blobtools_organism_(per_mapped_reads)', + 'kraken2_organism_(per_fragment)', + + # species specific information + 'seqsero2_predicted_antigenic_profile', + 'seqsero2_predicted_serotype', + 'emmtyper_predicted_emm-type', + 'kleborate_virulence_score', + 'kleborate_resistance_score', + 'kaptive_best_match_locus_O', + 'kaptive_best_match_locus_K', + 'elgato_st', + 'mykrobe_phylo_group', + 'mykrobe_species', + 'mykrobe_lineage', + 'drprg_susceptibility', + 'pbptyper_pbptype', + 'serotypefinder_Serotype_O', + 'serotypefinder_Serotype_H', + 'shigatyper_prediction', + 'shigatyper_hit'] set_columns = [] for new_column in final_columns : From e2fca46b8a04ee229ce0435d437c04f6ec58158a Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 13:12:00 -0600 Subject: [PATCH 15/24] removed comment --- subworkflows/report.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/subworkflows/report.nf b/subworkflows/report.nf index 4a333bf..91a8f69 100644 --- a/subworkflows/report.nf +++ b/subworkflows/report.nf @@ -27,8 +27,6 @@ workflow report { multiqc(for_multiqc.mix(for_summary).mix(mqc_prep.out.for_multiqc).mix(versions.out.for_multiqc).collect()) - //multiqc(for_multiqc.mix(for_summary).mix(mqc_prep.out.for_multiqc).collect()) - names(ch_reads.mix(ch_fastas)) names.out.collect From 159aa16adac47780ebd97c70dcc955a7d02fca09 Mon Sep 17 00:00:00 2001 From: Young Date: Wed, 13 Mar 2024 13:39:18 -0600 Subject: [PATCH 16/24] Update test.yml to account for skip extras --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7b69314..e5dc979 100755 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,9 +20,6 @@ jobs: - name: Run Grandeur run: | nextflow run . -profile docker,test0 -c .github/workflows/github_actions.config - cat grandeur/grandeur_summary.tsv - cat grandeur/summary/software_versions.yml - ls grandeur/multiqc/multiqc_report.html - name: Check contig files run: | From 87fa91e69211557960b5e390b8f421f1d4b4481c Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 16:41:12 -0600 Subject: [PATCH 17/24] removed ignore --- .github/workflows/github_actions.config | 147 ++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/.github/workflows/github_actions.config b/.github/workflows/github_actions.config index b303a1c..4f83c1e 100755 --- a/.github/workflows/github_actions.config +++ b/.github/workflows/github_actions.config @@ -28,4 +28,151 @@ process { withLabel:process_high_memory { memory = { 12.GB * task.attempt } } + withName:amrfinderplus { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:bbduk { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:blastn { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:blobtools_create { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:blobtools_plot { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:blobtools_view { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:circulocov { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:core_genome_evaluation { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:datasets_download { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:datasets_summary { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:download_sra { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:drprg { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:elgato { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:emmtyper { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:fastani { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:fastp { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:fastqc { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:flag { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:heatcluster { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:iqtree2 { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:json_convert { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:kaptive { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:kleborate { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:kraken2 { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mash_dist { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mash_err { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mash_sketch_fasta { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mash_sketch_fastq { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mashtree { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mlst { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mqc_prep { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:multiqc { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:mykrobe { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:names { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:panaroo { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:pbptyper { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:phytreeviz { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:plasmidfinder { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:prokka { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:quast { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:references { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:seqsero2 { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:serotypefinder { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:shigatyper { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:snp_dists { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:spades { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:species { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:summary { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } + withName:versions { + errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} + } } \ No newline at end of file From 516a94004793e149fd9878dbf1261ea93926bc09 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Wed, 13 Mar 2024 16:41:35 -0600 Subject: [PATCH 18/24] core_genome_evaluation bargraph --- bin/for_multiqc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/for_multiqc.py b/bin/for_multiqc.py index f1f0cff..4455766 100755 --- a/bin/for_multiqc.py +++ b/bin/for_multiqc.py @@ -705,12 +705,12 @@ if exists(core_genome_input): # core,soft,shell,cloud - line = "# plot_type: 'table'\n" + line = "# plot_type: 'bargraph'\n" line = line + "# section_name: 'Core Genome Evaluation'\n" line = line + "# description: 'Genes Identified'\n" line = line + "# pconfig:\n" line = line + "# namespace: 'Cust Data'\n" - line = line + "# format: 'csv'" + line = line + "# format: 'csv'\n" with open(core_genome_output,'w') as f: f.write(line) From cc2bad2aee03a2fc7c8c81f99ca712d18f8537c6 Mon Sep 17 00:00:00 2001 From: Young Date: Thu, 14 Mar 2024 11:19:17 -0600 Subject: [PATCH 19/24] Commented out GCA_904864595.1 --- .github/workflows/phylogenetic_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phylogenetic_workflow.yml b/.github/workflows/phylogenetic_workflow.yml index f1a440e..af37834 100644 --- a/.github/workflows/phylogenetic_workflow.yml +++ b/.github/workflows/phylogenetic_workflow.yml @@ -21,7 +21,7 @@ jobs: run: | docker --version - wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/904/864/595/GCA_904864595.1_INF333/GCA_904864595.1_INF333_genomic.fna.gz && gzip -d GCA_904864595.1_INF333_genomic.fna.gz + #wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/904/864/595/GCA_904864595.1_INF333/GCA_904864595.1_INF333_genomic.fna.gz && gzip -d GCA_904864595.1_INF333_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/783/245/GCA_013783245.1_ASM1378324v1/GCA_013783245.1_ASM1378324v1_genomic.fna.gz && gzip -d GCA_013783245.1_ASM1378324v1_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/026/626/185/GCA_026626185.1_ASM2662618v1/GCA_026626185.1_ASM2662618v1_genomic.fna.gz && gzip -d GCA_026626185.1_ASM2662618v1_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/020/808/985/GCA_020808985.1_ASM2080898v1/GCA_020808985.1_ASM2080898v1_genomic.fna.gz && gzip -d GCA_020808985.1_ASM2080898v1_genomic.fna.gz From 396b5b733ef8024c4734fe4ceb2e81d6105a2d9a Mon Sep 17 00:00:00 2001 From: Young Date: Thu, 14 Mar 2024 11:19:39 -0600 Subject: [PATCH 20/24] commented out GCA_904864595.1 --- .github/workflows/withoutfastani.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/withoutfastani.yml b/.github/workflows/withoutfastani.yml index 7dab3d0..b23a3a1 100644 --- a/.github/workflows/withoutfastani.yml +++ b/.github/workflows/withoutfastani.yml @@ -21,7 +21,7 @@ jobs: run: | docker --version - wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/904/864/595/GCA_904864595.1_INF333/GCA_904864595.1_INF333_genomic.fna.gz && gzip -d GCA_904864595.1_INF333_genomic.fna.gz + # wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/904/864/595/GCA_904864595.1_INF333/GCA_904864595.1_INF333_genomic.fna.gz && gzip -d GCA_904864595.1_INF333_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/783/245/GCA_013783245.1_ASM1378324v1/GCA_013783245.1_ASM1378324v1_genomic.fna.gz && gzip -d GCA_013783245.1_ASM1378324v1_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/026/626/185/GCA_026626185.1_ASM2662618v1/GCA_026626185.1_ASM2662618v1_genomic.fna.gz && gzip -d GCA_026626185.1_ASM2662618v1_genomic.fna.gz wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/020/808/985/GCA_020808985.1_ASM2080898v1/GCA_020808985.1_ASM2080898v1_genomic.fna.gz && gzip -d GCA_020808985.1_ASM2080898v1_genomic.fna.gz @@ -42,4 +42,4 @@ jobs: do head $file wc -l $file - done \ No newline at end of file + done From 7e551e52fc2707384640c2d1ec4aa46a32d72a90 Mon Sep 17 00:00:00 2001 From: Young Date: Fri, 15 Mar 2024 10:00:30 -0600 Subject: [PATCH 21/24] Update github_actions.config --- .github/workflows/github_actions.config | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/github_actions.config b/.github/workflows/github_actions.config index 4f83c1e..4e32005 100755 --- a/.github/workflows/github_actions.config +++ b/.github/workflows/github_actions.config @@ -131,6 +131,12 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:panaroo { + publishDir = { + params.outdir, + mode: 'link', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + pattern: "panaroo/core_gene_alignment.aln" + } errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:pbptyper { @@ -143,6 +149,12 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:prokka { + publishDir = { + params.outdir, + mode: 'link', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + pattern: "gff/*.gff" + } errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:quast { @@ -175,4 +187,4 @@ process { withName:versions { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } -} \ No newline at end of file +} From ebdc5c4fbda8cc0ede448fe720d5383fdab472dc Mon Sep 17 00:00:00 2001 From: Young Date: Fri, 15 Mar 2024 10:07:46 -0600 Subject: [PATCH 22/24] Update github_actions.config --- .github/workflows/github_actions.config | 71 +++++++++++-------------- 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/.github/workflows/github_actions.config b/.github/workflows/github_actions.config index 4e32005..31bdc24 100755 --- a/.github/workflows/github_actions.config +++ b/.github/workflows/github_actions.config @@ -1,33 +1,34 @@ process { - maxRetries = 0 - maxErrors = '-1' + maxRetries = 0 + maxErrors = '-1' + + withLabel:process_single { + cpus = { 1 } + memory = { 6.GB * task.attempt } + time = { 10.m * task.attempt } + } + withLabel:process_low { + cpus = { 2 * task.attempt } + memory = { 12.GB * task.attempt } + time = { 2.h * task.attempt } + } + withLabel:process_medium { + cpus = { 2 * task.attempt } + memory = { 12.GB * task.attempt } + time = { 4.h * task.attempt } + } + withLabel:process_high { + cpus = { 2 * task.attempt } + memory = { 12.GB * task.attempt } + time = { 16.h * task.attempt } + } + withLabel:process_long { + time = { 20.h * task.attempt } + } + withLabel:process_high_memory { + memory = { 12.GB * task.attempt } + } - withLabel:process_single { - cpus = { 1 } - memory = { 6.GB * task.attempt } - time = { 10.m * task.attempt } - } - withLabel:process_low { - cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 2.h * task.attempt } - } - withLabel:process_medium { - cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 4.h * task.attempt } - } - withLabel:process_high { - cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 16.h * task.attempt } - } - withLabel:process_long { - time = { 20.h * task.attempt } - } - withLabel:process_high_memory { - memory = { 12.GB * task.attempt } - } withName:amrfinderplus { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } @@ -131,12 +132,7 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:panaroo { - publishDir = { - params.outdir, - mode: 'link', - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - pattern: "panaroo/core_gene_alignment.aln" - } + publishDir = { params.outdir, mode: 'link', pattern: "panaroo/core_gene_alignment.aln"} errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:pbptyper { @@ -149,12 +145,7 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:prokka { - publishDir = { - params.outdir, - mode: 'link', - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - pattern: "gff/*.gff" - } + publishDir = { params.outdir, mode: 'link', pattern: "gff/*.gff" } errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:quast { From 113e3ec97b8dc77f6c164dc076cc9cf59ebe43d1 Mon Sep 17 00:00:00 2001 From: Erin Young Date: Fri, 15 Mar 2024 10:21:09 -0600 Subject: [PATCH 23/24] fixed config file --- .github/workflows/github_actions.config | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/github_actions.config b/.github/workflows/github_actions.config index 31bdc24..c932413 100755 --- a/.github/workflows/github_actions.config +++ b/.github/workflows/github_actions.config @@ -9,21 +9,21 @@ process { } withLabel:process_low { cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 2.h * task.attempt } + memory = { 12.GB * task.attempt } + time = { 2.h * task.attempt } } withLabel:process_medium { cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 4.h * task.attempt } - } - withLabel:process_high { - cpus = { 2 * task.attempt } - memory = { 12.GB * task.attempt } - time = { 16.h * task.attempt } - } - withLabel:process_long { - time = { 20.h * task.attempt } + memory = { 12.GB * task.attempt } + time = { 4.h * task.attempt } + } + withLabel:process_high { + cpus = { 2 * task.attempt } + memory = { 12.GB * task.attempt } + time = { 16.h * task.attempt } + } + withLabel:process_long { + time = { 20.h * task.attempt } } withLabel:process_high_memory { memory = { 12.GB * task.attempt } @@ -132,7 +132,7 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:panaroo { - publishDir = { params.outdir, mode: 'link', pattern: "panaroo/core_gene_alignment.aln"} + publishDir = [ path: "grandeur", mode: 'link', pattern: "panaroo/core_gene_alignment.aln"] errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:pbptyper { @@ -145,7 +145,7 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:prokka { - publishDir = { params.outdir, mode: 'link', pattern: "gff/*.gff" } + publishDir = [ path: "grandeur", mode: 'link', pattern: "gff/*.gff" ] errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:quast { From 55f61bb55111916d4be5451ae119e9812e693b6b Mon Sep 17 00:00:00 2001 From: Erin Young Date: Fri, 15 Mar 2024 11:17:47 -0600 Subject: [PATCH 24/24] added wildcard to pattern --- .github/workflows/github_actions.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github_actions.config b/.github/workflows/github_actions.config index c932413..a82a592 100755 --- a/.github/workflows/github_actions.config +++ b/.github/workflows/github_actions.config @@ -132,7 +132,7 @@ process { errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:panaroo { - publishDir = [ path: "grandeur", mode: 'link', pattern: "panaroo/core_gene_alignment.aln"] + publishDir = [ path: "grandeur", mode: 'link', pattern: "panaroo/*"] errorStrategy = { task.attempt < 2 ? 'retry' : 'terminate'} } withName:pbptyper {