From 36825d7033069debd66347d72a02c3a7461bd133 Mon Sep 17 00:00:00 2001 From: Charles Plessy Date: Tue, 16 Jul 2024 09:44:49 +0900 Subject: [PATCH 1/2] Collect and report training and alignment statistics. --- assets/multiqc_config.yml | 16 ++++++++++++++++ subworkflows/local/pairalign_m2m/main.nf | 3 +++ subworkflows/local/pairalign_m2o/main.nf | 3 +++ workflows/pairgenomealign.nf | 17 +++++++++++------ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 52f81cc..7293a54 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -13,3 +13,19 @@ report_section_order: export_plots: true disable_version_detection: true + +custom_data: + train: + file_format: "tsv" + section_name: "Training parameter statistics" + plot_type: "table" + last_o2o: + file_format: "tsv" + section_name: "Alignment statistics" + plot_type: "table" + +sp: + last_o2o: + fn: "*o2o_aln.tsv" + train: + fn: "*train.tsv" diff --git a/subworkflows/local/pairalign_m2m/main.nf b/subworkflows/local/pairalign_m2m/main.nf index d85f205..39e40f8 100644 --- a/subworkflows/local/pairalign_m2m/main.nf +++ b/subworkflows/local/pairalign_m2m/main.nf @@ -115,6 +115,9 @@ workflow PAIRALIGN_M2M { emit: + multiqc = Channel.empty() + .mix( LAST_TRAIN.out.multiqc.collect{ it[1]} ) + .mix(LAST_SPLIT_O2O.out.multiqc.collect{ it[1]} ) m2m = LAST_LASTAL_M2M.out.maf m2o = LAST_SPLIT_M2O.out.maf o2m = LAST_SPLIT_O2M.out.maf diff --git a/subworkflows/local/pairalign_m2o/main.nf b/subworkflows/local/pairalign_m2o/main.nf index f01f025..24e90fa 100644 --- a/subworkflows/local/pairalign_m2o/main.nf +++ b/subworkflows/local/pairalign_m2o/main.nf @@ -77,6 +77,9 @@ workflow PAIRALIGN_M2O { emit: + multiqc = Channel.empty() + .mix( LAST_TRAIN.out.multiqc.collect{ it[1]} ) + .mix(LAST_SPLIT_O2O.out.multiqc.collect{ it[1]} ) m2o = LAST_LASTAL_M2O.out.maf o2o = LAST_SPLIT_O2O.out.maf } diff --git a/workflows/pairgenomealign.nf b/workflows/pairgenomealign.nf index bbb9cbc..a7740e5 100644 --- a/workflows/pairgenomealign.nf +++ b/workflows/pairgenomealign.nf @@ -53,7 +53,6 @@ workflow PAIRGENOMEALIGN { ASSEMBLYSCAN ( ch_samplesheet ) - ch_multiqc_files = ch_multiqc_files.mix(ASSEMBLYSCAN.out.json.collect{it[1]}) ch_versions = ch_versions.mix(ASSEMBLYSCAN.out.versions.first()) // Prefix query ids with target genome name before producing alignment files @@ -72,6 +71,7 @@ workflow PAIRGENOMEALIGN { SEQTK_CUTN_TARGET.out.bed, ch_seqtk_cutn_query ) + pairalign_out = PAIRALIGN_M2O.out } else { // @@ -83,6 +83,7 @@ workflow PAIRGENOMEALIGN { SEQTK_CUTN_TARGET.out.bed, ch_seqtk_cutn_query ) + pairalign_out = PAIRALIGN_M2M.out } // Collate and save software versions @@ -117,10 +118,12 @@ workflow PAIRGENOMEALIGN { ch_methods_description = Channel.value( methodsDescriptionText(ch_multiqc_custom_methods_description)) - ch_multiqc_files = ch_multiqc_files.mix( - ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) - ch_multiqc_files = ch_multiqc_files.mix( + ch_multiqc_files = ch_multiqc_files + .mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + .mix(ASSEMBLYSCAN.out.json.collect{it[1]}) + .mix(pairalign_out.multiqc) + .mix(ch_collated_versions) + .mix( ch_methods_description.collectFile( name: 'methods_description_mqc.yaml', sort: true @@ -131,7 +134,9 @@ workflow PAIRGENOMEALIGN { ch_multiqc_files.collect(), ch_multiqc_config.toList(), ch_multiqc_custom_config.toList(), - ch_multiqc_logo.toList() + ch_multiqc_logo.toList(), + [], + [] ) emit: From a2e223acde50fd10eb44b99ab9c26aceb103002e Mon Sep 17 00:00:00 2001 From: Charles Plessy Date: Tue, 16 Jul 2024 09:56:00 +0900 Subject: [PATCH 2/2] Collect more software version numbers. --- subworkflows/local/pairalign_m2m/main.nf | 1 + subworkflows/local/pairalign_m2o/main.nf | 1 + workflows/pairgenomealign.nf | 7 ++++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/pairalign_m2m/main.nf b/subworkflows/local/pairalign_m2m/main.nf index 39e40f8..479a7fd 100644 --- a/subworkflows/local/pairalign_m2m/main.nf +++ b/subworkflows/local/pairalign_m2m/main.nf @@ -122,6 +122,7 @@ workflow PAIRALIGN_M2M { m2o = LAST_SPLIT_M2O.out.maf o2m = LAST_SPLIT_O2M.out.maf o2o = LAST_SPLIT_O2O.out.maf + versions = LAST_LASTDB.out.versions } /* diff --git a/subworkflows/local/pairalign_m2o/main.nf b/subworkflows/local/pairalign_m2o/main.nf index 24e90fa..ff244b1 100644 --- a/subworkflows/local/pairalign_m2o/main.nf +++ b/subworkflows/local/pairalign_m2o/main.nf @@ -82,6 +82,7 @@ workflow PAIRALIGN_M2O { .mix(LAST_SPLIT_O2O.out.multiqc.collect{ it[1]} ) m2o = LAST_LASTAL_M2O.out.maf o2o = LAST_SPLIT_O2O.out.maf + versions = LAST_LASTDB.out.versions } /* diff --git a/workflows/pairgenomealign.nf b/workflows/pairgenomealign.nf index a7740e5..f84ae3d 100644 --- a/workflows/pairgenomealign.nf +++ b/workflows/pairgenomealign.nf @@ -53,7 +53,6 @@ workflow PAIRGENOMEALIGN { ASSEMBLYSCAN ( ch_samplesheet ) - ch_versions = ch_versions.mix(ASSEMBLYSCAN.out.versions.first()) // Prefix query ids with target genome name before producing alignment files ch_samplesheet = ch_samplesheet @@ -88,6 +87,12 @@ workflow PAIRGENOMEALIGN { // Collate and save software versions // + + ch_versions = ch_versions + .mix(SEQTK_CUTN_TARGET.out.versions) + .mix( ASSEMBLYSCAN.out.versions) + .mix( pairalign_out.versions) + softwareVersionsToYAML(ch_versions) .collectFile( storeDir: "${params.outdir}/pipeline_info",