annotate 0.6.1/workflows/bettercallsal_db.nf @ 16:b90e5a7a3d4f

"planemo upload"
author kkonganti
date Thu, 07 Sep 2023 15:22:10 -0400
parents 749faef1caa9
children
rev   line source
kkonganti@11 1 // Define any required imports for this specific workflow
kkonganti@11 2 import java.nio.file.Paths
kkonganti@11 3 import nextflow.file.FileHelper
kkonganti@11 4
kkonganti@11 5
kkonganti@11 6 // Include any necessary methods
kkonganti@11 7 include { \
kkonganti@11 8 fastqEntryPointHelp; summaryOfParams; stopNow; sendMail; \
kkonganti@11 9 addPadding; wrapUpHelp } from "${params.routines}"
kkonganti@11 10 include { wcompHelp } from "${params.toolshelp}${params.fs}wcomp"
kkonganti@11 11 include { wsnpHelp } from "${params.toolshelp}${params.fs}wsnp"
kkonganti@11 12 include { mashsketchHelp } from "${params.toolshelp}${params.fs}mashsketch"
kkonganti@11 13
kkonganti@11 14
kkonganti@11 15 // Exit if help requested before any subworkflows
kkonganti@11 16 if (params.help) {
kkonganti@11 17 log.info help()
kkonganti@11 18 exit 0
kkonganti@11 19 }
kkonganti@11 20
kkonganti@11 21
kkonganti@11 22 // Include any necessary modules and subworkflows
kkonganti@11 23 include { DOWNLOAD_PDG_METADATA } from "${params.modules}${params.fs}download_pdg_metadata${params.fs}main"
kkonganti@11 24 include { FILTER_PDG_METADATA } from "${params.modules}${params.fs}filter_pdg_metadata${params.fs}main"
kkonganti@11 25 include { DB_PER_COMPUTED_SEROTYPE } from "${params.modules}${params.fs}db_per_computed_serotype${params.fs}main"
kkonganti@11 26 include { DB_PER_SNP_CLUSTER } from "${params.modules}${params.fs}db_per_snp_cluster${params.fs}main"
kkonganti@11 27 include { INDEX_METADATA } from "${params.modules}${params.fs}index_metadata${params.fs}main"
kkonganti@11 28 include { SCAFFOLD_GENOMES } from "${params.modules}${params.fs}scaffold_genomes${params.fs}main"
kkonganti@11 29 include { MASH_SKETCH } from "${params.modules}${params.fs}mash${params.fs}sketch${params.fs}main"
kkonganti@11 30 include { DUMP_SOFTWARE_VERSIONS } from "${params.modules}${params.fs}custom${params.fs}dump_software_versions${params.fs}main"
kkonganti@11 31
kkonganti@11 32 /*
kkonganti@11 33 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 34 INPUTS AND ANY CHECKS FOR THE BETTERCALLSAL_DB WORKFLOW
kkonganti@11 35 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 36 */
kkonganti@11 37
kkonganti@11 38 if (!params.output) {
kkonganti@11 39 stopNow("Please mention the absolute UNIX path to store the DB flat files\n" +
kkonganti@11 40 "using the --output option.\n" +
kkonganti@11 41 "Ex: --output /path/to/bettercallsal/db_files")
kkonganti@11 42 }
kkonganti@11 43
kkonganti@11 44 /*
kkonganti@11 45 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 46 RUN THE BETTERCALLSAL_DB WORKFLOW
kkonganti@11 47 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 48 */
kkonganti@11 49
kkonganti@11 50 workflow BETTERCALLSAL_DB {
kkonganti@11 51 main:
kkonganti@11 52 log.info summaryOfParams()
kkonganti@11 53
kkonganti@11 54 DOWNLOAD_PDG_METADATA ( params.pdg_release ?: null )
kkonganti@11 55
kkonganti@11 56 DOWNLOAD_PDG_METADATA
kkonganti@11 57 .out
kkonganti@11 58 .versions
kkonganti@11 59 .set { software_versions }
kkonganti@11 60
kkonganti@11 61 FILTER_PDG_METADATA (
kkonganti@11 62 DOWNLOAD_PDG_METADATA.out.accs
kkonganti@11 63 .splitText(by: params.genomes_chunk.toInteger() * 10, file: true)
kkonganti@11 64 )
kkonganti@11 65
kkonganti@11 66 DB_PER_COMPUTED_SEROTYPE (
kkonganti@11 67 FILTER_PDG_METADATA.out.accs_chunk_tbl
kkonganti@11 68 .collectFile(name: 'per_comp_db_accs.txt'),
kkonganti@11 69 DOWNLOAD_PDG_METADATA.out.pdg_metadata
kkonganti@11 70 )
kkonganti@11 71
kkonganti@11 72 DB_PER_SNP_CLUSTER (
kkonganti@11 73 FILTER_PDG_METADATA.out.accs_chunk_tbl
kkonganti@11 74 .collectFile(name: 'per_snp_db_accs.txt'),
kkonganti@11 75 DOWNLOAD_PDG_METADATA.out.pdg_metadata,
kkonganti@11 76 DOWNLOAD_PDG_METADATA.out.snp_cluster_metadata
kkonganti@11 77 )
kkonganti@11 78
kkonganti@11 79 DB_PER_COMPUTED_SEROTYPE.out.genome_paths
kkonganti@11 80 .map { query ->
kkonganti@11 81 kv = [:]
kkonganti@11 82 kv['id'] = 'comp'
kkonganti@11 83 [ kv, query ]
kkonganti@11 84 }
kkonganti@11 85 .concat(
kkonganti@11 86 DB_PER_SNP_CLUSTER.out.genome_paths
kkonganti@11 87 .map { query ->
kkonganti@11 88 kv = [:]
kkonganti@11 89 kv['id'] = 'snp'
kkonganti@11 90 [ kv, query ]
kkonganti@11 91 }
kkonganti@11 92 )
kkonganti@11 93 .groupTuple(by: [0])
kkonganti@11 94 .set { ch_mash_these_genomes }
kkonganti@11 95
kkonganti@11 96 DB_PER_SNP_CLUSTER
kkonganti@11 97 .out
kkonganti@11 98 .asm_chunk_snp_tbl
kkonganti@11 99 .concat( DB_PER_COMPUTED_SEROTYPE.out.asm_chunk_comp_tbl )
kkonganti@11 100 .map { acc -> [ acc.name.find(/\_comp|\_snp/), acc ] }
kkonganti@11 101 .set { ch_index_metadata }
kkonganti@11 102
kkonganti@11 103 INDEX_METADATA ( ch_index_metadata )
kkonganti@11 104
kkonganti@11 105 DB_PER_COMPUTED_SEROTYPE.out.accs_comp
kkonganti@11 106 .concat( DB_PER_SNP_CLUSTER.out.accs_snp )
kkonganti@11 107 .splitText()
kkonganti@11 108 .collect()
kkonganti@11 109 .flatten()
kkonganti@11 110 .unique()
kkonganti@11 111 .collectFile(name: 'accs_to_download.txt')
kkonganti@11 112 .splitText(by: params.genomes_chunk, file: true)
kkonganti@11 113 .set { ch_accs_to_download }
kkonganti@11 114
kkonganti@11 115 SCAFFOLD_GENOMES ( ch_accs_to_download )
kkonganti@11 116
kkonganti@11 117 SCAFFOLD_GENOMES
kkonganti@11 118 .out
kkonganti@11 119 .genomes_dir
kkonganti@11 120 .toSortedList()
kkonganti@11 121 .flatten()
kkonganti@11 122 .unique()
kkonganti@11 123 .set { ch_genomes_dir }
kkonganti@11 124
kkonganti@11 125 MASH_SKETCH (
kkonganti@11 126 ch_mash_these_genomes.combine( ch_genomes_dir )
kkonganti@11 127 )
kkonganti@11 128
kkonganti@11 129 DUMP_SOFTWARE_VERSIONS (
kkonganti@11 130 software_versions
kkonganti@11 131 .mix (
kkonganti@11 132 DOWNLOAD_PDG_METADATA.out.versions,
kkonganti@11 133 FILTER_PDG_METADATA.out.versions,
kkonganti@11 134 DB_PER_COMPUTED_SEROTYPE.out.versions,
kkonganti@11 135 DB_PER_SNP_CLUSTER.out.versions,
kkonganti@11 136 INDEX_METADATA.out.versions,
kkonganti@11 137 SCAFFOLD_GENOMES.out.versions,
kkonganti@11 138 MASH_SKETCH.out.versions,
kkonganti@11 139 )
kkonganti@11 140 .unique()
kkonganti@11 141 .collectFile(name: 'collected_versions.yml')
kkonganti@11 142 )
kkonganti@11 143 }
kkonganti@11 144
kkonganti@11 145 /*
kkonganti@11 146 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 147 ON COMPLETE, SHOW GORY DETAILS OF ALL PARAMS WHICH WILL BE HELPFUL TO DEBUG
kkonganti@11 148 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 149 */
kkonganti@11 150
kkonganti@11 151 workflow.onComplete {
kkonganti@11 152 if (workflow.success) {
kkonganti@11 153 sendMail()
kkonganti@11 154 }
kkonganti@11 155 }
kkonganti@11 156
kkonganti@11 157 workflow.onError {
kkonganti@11 158 sendMail()
kkonganti@11 159 }
kkonganti@11 160
kkonganti@11 161 /*
kkonganti@11 162 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 163 HELP TEXT METHODS FOR BETTERCALLSAL_DB WORKFLOW
kkonganti@11 164 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kkonganti@11 165 */
kkonganti@11 166
kkonganti@11 167 def help() {
kkonganti@11 168
kkonganti@11 169 Map helptext = [:]
kkonganti@11 170
kkonganti@11 171 helptext.putAll (
kkonganti@11 172 fastqEntryPointHelp().findAll {
kkonganti@11 173 it.key =~ /Required|output|Other|Workflow|Author|Version/
kkonganti@11 174 } +
kkonganti@11 175 wcompHelp(params).text +
kkonganti@11 176 wsnpHelp(params).text +
kkonganti@11 177 mashsketchHelp(params).text +
kkonganti@11 178 wrapUpHelp()
kkonganti@11 179 )
kkonganti@11 180
kkonganti@11 181 return addPadding(helptext)
kkonganti@11 182 }