Mercurial > repos > galaxytrakr > hfp_centriflaken_awsbatch
comparison 0.4.2/workflows/nanofactory.nf @ 0:082e0091e813 draft default tip
planemo upload
| author | galaxytrakr |
|---|---|
| date | Fri, 29 May 2026 13:27:47 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:082e0091e813 |
|---|---|
| 1 // | |
| 2 // Start nanofactory workflow. Since this is a special | |
| 3 // case workflow wherein most of the bioinformatics | |
| 4 // tools are not used, there won't be any modules or | |
| 5 // subworkflows and therefore all the processes | |
| 6 // reside here. | |
| 7 // | |
| 8 | |
| 9 // Include any necessary methods. | |
| 10 include { addPadding; summaryOfParams; stopNow} \ | |
| 11 from "${params.routines}" | |
| 12 | |
| 13 /* | |
| 14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 15 PROCESS DEFINITIONS FOR NANOFACTORY | |
| 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 17 */ | |
| 18 | |
| 19 process SETPUBLISHDIR { | |
| 20 label 'process_femto' | |
| 21 module (params.enable_module ? params.enable_module : null) | |
| 22 conda (params.enable_conda ? params.enable_conda : null) | |
| 23 | |
| 24 input: | |
| 25 val options | |
| 26 | |
| 27 output: | |
| 28 stdout | |
| 29 | |
| 30 shell: | |
| 31 ''' | |
| 32 project_setup.py -s !{options.sample_sheet} \ | |
| 33 !{options.alt_settings} !{options.verbose} -b | |
| 34 ''' | |
| 35 } | |
| 36 | |
| 37 process PROJECTSETUP { | |
| 38 label 'process_femto' | |
| 39 publishDir "${publish_dir.trim()}", mode: 'copy', overwrite: false | |
| 40 module (params.enable_module ? params.enable_module : null) | |
| 41 conda (params.enable_conda ? params.enable_conda : null) | |
| 42 | |
| 43 input: | |
| 44 val options | |
| 45 val publish_dir | |
| 46 | |
| 47 output: | |
| 48 stdout | |
| 49 | |
| 50 script: | |
| 51 params.publish_dir = "${publish_dir.trim()}" | |
| 52 | |
| 53 shell: | |
| 54 ''' | |
| 55 project_setup.py -y -s !{options.sample_sheet} !{options.alt_settings} \ | |
| 56 !{options.purge} !{options.runtype} !{options.logfile} \ | |
| 57 !{options.loglevel} !{options.verbose} !{options.nocopy} \ | |
| 58 !{options.fix_existing} | |
| 59 | |
| 60 cat < original_source.txt | |
| 61 ''' | |
| 62 } | |
| 63 | |
| 64 process TRIMDEMUX { | |
| 65 label 'process_pico' | |
| 66 module (params.enable_module ? params.enable_module : null) | |
| 67 conda (params.enable_conda ? params.enable_conda : null) | |
| 68 cpus "${params.guppy_threads}" | |
| 69 | |
| 70 input: | |
| 71 val options | |
| 72 val original_source | |
| 73 | |
| 74 output: | |
| 75 path 'source.txt' | |
| 76 | |
| 77 shell: | |
| 78 ''' | |
| 79 trim_demux.py -s !{options.sample_sheet} !{options.verbose} \ | |
| 80 !{options.alt_settings} !{options.guppy_config} -t !{options.guppy_threads} | |
| 81 ''' | |
| 82 } | |
| 83 | |
| 84 /* | |
| 85 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 86 WORKFLOW ENTRY POINT | |
| 87 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 88 */ | |
| 89 | |
| 90 workflow NANOFACTORY { | |
| 91 | |
| 92 if ( params.help ) { | |
| 93 log.info help() | |
| 94 } else if ( params.sample_sheet == null || | |
| 95 params.sample_sheet.length() == 0 ) { | |
| 96 | |
| 97 log.info help() | |
| 98 stopNow("Please provide absolute path to a JSON formatted sample sheet using the\n" + | |
| 99 "--sample_sheet option.") | |
| 100 } else { | |
| 101 log.info summaryOfParams() | |
| 102 | |
| 103 options = Channel.empty() | |
| 104 Channel | |
| 105 .from(setOptions()) | |
| 106 .set { options } | |
| 107 | |
| 108 take: | |
| 109 options | |
| 110 | |
| 111 main: | |
| 112 SETPUBLISHDIR(options) | |
| 113 PROJECTSETUP(options, SETPUBLISHDIR.out) | |
| 114 TRIMDEMUX(options, PROJECTSETUP.out) | |
| 115 } | |
| 116 } | |
| 117 | |
| 118 | |
| 119 /* | |
| 120 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 121 THE END | |
| 122 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 123 */ | |
| 124 | |
| 125 | |
| 126 /* | |
| 127 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 128 HELPER METHODS FOR NANOFACTORY WORKFLOW | |
| 129 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 130 */ | |
| 131 | |
| 132 def setOptions() { | |
| 133 | |
| 134 Map options = [:] | |
| 135 | |
| 136 options['sample_sheet'] ?= "${params.sample_sheet}" | |
| 137 options['verbose'] = params.verbose ? "-v" : "" | |
| 138 options['alt_settings'] = params.global_settings ? "-c ${params.global_settings}" : "" | |
| 139 options['purge'] = params.setup_purge_existing ? "-p" : "" | |
| 140 options['logfile'] = params.log_file ? "-l ${params.log_file}" : "" | |
| 141 options['loglevel'] = params.log_level ? "--loglevel ${params.log_level}" : "" | |
| 142 options['nocopy'] = params.setup_nocopy ? "--nocopy" : "" | |
| 143 options['runtype'] = params.setup_runtype ? "-r ${params.setup_runtype}" : "" | |
| 144 options['fix_existing'] = params.setup_fix_existing ? "-f" : "" | |
| 145 options['guppy_config'] = params.guppy_config ? " -g ${params.guppy_config}" : "" | |
| 146 options['mode'] = params.mode ? "-m ${params.mode}" : "-m prod" | |
| 147 options['mail_group'] = params.mail_group ? "-g ${params.mail_group}" : "-g stakeholders" | |
| 148 options['guppy_threads'] = params.guppy_threads ? "${params.guppy_threads}" : 1 | |
| 149 options['pad'] = pad.toInteger() | |
| 150 options['nocapitalize'] = true | |
| 151 | |
| 152 return options | |
| 153 } | |
| 154 | |
| 155 def help() { | |
| 156 | |
| 157 Map helptext = [:] | |
| 158 | |
| 159 helptext['help'] = true | |
| 160 helptext['nocapitalize'] = true | |
| 161 helptext['Workflow'] = "${params.pipeline}" | |
| 162 helptext['Author'] = "${params.workflow_author}" | |
| 163 helptext['Version'] = "${params.workflow_version}\n" | |
| 164 helptext['Usage'] = "cpipes --pipeline nanofactory [options]\n" | |
| 165 helptext['Required'] = "" | |
| 166 helptext['--sample_sheet'] = "The JSON-formatted sample sheet for this run. Normally provided by Pore Refiner.\n" | |
| 167 helptext['Other options'] = "" | |
| 168 helptext['--global_settings'] = "An alternate global settings file. If not present the installed default will be used." | |
| 169 helptext['--log_file'] = "Path and file name to a log file relative to the project directory (Default: 'logs/workflow.log')" | |
| 170 helptext['--log_level'] = "One of 'debug', 'info', 'warning', 'error', 'fatal' (Default: 'info')" | |
| 171 helptext['--mode'] = "Set the run mode. One of 'dev', 'test', 'stage', or 'prod' (Default: 'prod')" | |
| 172 helptext['--verbose'] = "Use to enable more verbose console output from each tool\n" | |
| 173 helptext['Project setup options'] = "" | |
| 174 helptext['--disable_project_setup'] = "Do not do project setup (Default: setup is enabled)" | |
| 175 helptext['--setup_purge_existing'] = "Before setting up the project area delete any existing files (Default: don't purge)" | |
| 176 helptext['--setup_nocopy'] = "During setup, do NOT copy the original data files to the scrach location (Default: copy)" | |
| 177 helptext['--setup_runtype'] = "Set things up for the indicated run type (Currently not used)" | |
| 178 helptext['--setup_runtype'] = "Set things up for the indicated run type (Currently not used)" | |
| 179 helptext['--enable_module'] = "Software environment module. Ex: --enable_module 'nanofactory/current'" | |
| 180 helptext['--enable_conda'] = "CONDA environment module. Ex: --enable_conda nanofactory\n" | |
| 181 helptext['Help options'] = "" | |
| 182 helptext['--help'] = "Display this message.\n" | |
| 183 | |
| 184 return addPadding(helptext) | |
| 185 } |
