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