comparison toolfactory/rgToolFactory2.xml @ 49:35a912ce0c83 draft

Can now make the bwa example from planemo :)
author fubar
date Thu, 27 Aug 2020 23:11:01 -0400
parents 5a7a5b06bce0
children bf432f4486c7
comparison
equal deleted inserted replaced
48:5a7a5b06bce0 49:35a912ce0c83
1 <tool id="rgTF2" name="toolfactory" version="2.00" profile="16.04" > 1 <tool id="rgTF2" name="toolfactory" version="2.00" profile="16.04" >
2 <description>Scripts into tools</description> 2 <description>Scripts into tools</description>
3 <macros> 3 <macros>
4 <xml name="io"> 4 <xml name="planemo_steps">
5 <repeat name="history_inputs" title="Add a data file from your history to pass in to the script. Use the '+' button as needed" 5 <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01"
6 help="USE SMALL SAMPLES because these will be used for the new tool's test. The names will become a history item selector as input for users of the new tool you are making">
7 <param name="input_files" type="data" format="data" label="Select an input file from your history" optional="true" multiple="false"
8 help=""/>
9 <param name="input_formats" type="select" multiple="true" label="Select the datatype(s) that your tool/script accepts as input"
10 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
11 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
12 <column name="value" index="0"/>
13 </options>
14 </param>
15 <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative"
16 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
17 <sanitizer invalid_char="">
18 <valid initial="string.printable"> <remove value='~~~'/> </valid>
19 <mapping initial="none"/>
20 </sanitizer>
21 </param>
22 <param name="input_help" type="text" value="parameter_help" label="This will become help text on the form."
23 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation">
24 <sanitizer invalid_char="">
25 <valid initial="string.printable"> <remove value='~~~'/> </valid>
26 <mapping initial="none"/>
27 </sanitizer>
28 </param>
29 <param name="input_CL" type="text" label="Positional: ordinal integer. Argparse: argument name. STDIN if the executable/script expects it"
30 help="If you will pass positional parameters, enter the integer ordinal for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value="">
31 </param>
32 </repeat>
33 <repeat name="history_outputs" title="Add a tool run output file to the user's history from your tool - Use the '+' button to add as many as needed"
34 help="The name will become a history item for users of the new tool you are making containing one of it's outputs">
35 <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" help=""/>
36 <param name="history_format" type="select" multiple="false" label="Select the datatype for this output"
37 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
38 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
39 <column name="value" index="0"/>
40 </options>
41 </param>
42 <param name="history_CL" type="text" label="Positional: ordinal integer. Argparse: argument name expected for this output parameter. Use STDOUT if '>' required."
43 help="If positional parameters, enter the integer ordinal expected for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""/>
44 </repeat>
45 </xml>
46 <xml name="additparam">
47 <param name="edit_params" type="select" display="radio" label="Add any additional parameters to the generated tool form so they are user editable?"
48 help="If no (default), users will NOT be able to alter any additional parameters. If yes, these will appear on the tool form as text fields with no validation or sanitizing">
49 <option value="yes">Yes, allow user to edit all additional parameters on the generated tool form</option>
50 <option value="no" selected="true">No - use the fixed values for all additional parameters - no user editing</option>
51 </param>
52
53 <repeat name="additional_parameters" title="Pass additional parameters to the script"
54 help="See examples below to see how these can be parsed by scripts in the various languages">
55 <param name="param_name" type="text" value="parameter_name" label="Choose the name for this parameter">
56 <sanitizer invalid_char="">
57 <valid initial="string.letters,string.digits"/>
58 <mapping initial="none"/>
59 </sanitizer>
60 </param>
61 <param name="param_type" type="select" label="Select the type for this parameter">
62 <option value="text" selected="true">text</option>
63 <option value="integer">integer</option>
64 <option value="float">float</option>
65 </param>
66 <param name="param_value" type="text" value="" label="Enter this parameter's default value"
67 help="Note that '~~~' is an internal delimiter must not appear in this text field - please work around this technical limitation" >
68 <sanitizer invalid_char="">
69 <valid initial="string.printable"> <remove value='~~~'/> </valid>
70 <mapping initial="none"/>
71 </sanitizer>
72 </param>
73 <param name="param_label" type="text" value="parameter_label" label="Enter this parameter's label for the form"
74 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
75 <sanitizer invalid_char="">
76 <valid initial="string.printable"> <remove value='~~~'/> </valid>
77 <mapping initial="none"/>
78 </sanitizer>
79 </param>
80 <param name="param_help" type="text" value="parameter_help" label="Help for this parameter"
81 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" >
82 <sanitizer invalid_char="">
83 <valid initial="string.printable"> <remove value='~~~'/> </valid>
84 <mapping initial="none"/>
85 </sanitizer>
86 </param>
87 <param name="param_CL" type="text" label="Positional ordinal or argparse argument name"
88 help="Using positional parameters, enter the integer ordinal for this parameter on the command line. Using Argparse style, '--' will be prepended on the CL" value="" />
89 <param name="param_CLprefixed" type="text" label="Override the generated default argparse name prefix if not empty - eg ----foo if needed"
90 help="Some targets like Planemo expect an unadorned action like 'test' before --galaxy_root and so on. " value="" />
91
92 </repeat>
93 </xml>
94 <xml name="builtin_dynpar">
95 <param name="exe_package" type="hidden" value="" />
96 <param name="exe_package_version" type="hidden" value="" />
97 <param name="cl_override" type="hidden" value="" />
98 <param name="interpreter_version" type="hidden" value=""/>
99 <param name="dependencies" type="hidden" value="" />
100 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True"
101 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately">
102 <sanitizer>
103 <valid initial="string.printable">
104 </valid>
105 <mapping initial="none"/>
106 </sanitizer>
107 </param>
108 </xml>
109 <xml name="dynpar">
110 <param name="exe_package" type="hidden" value="" />
111 <param name="exe_package_version" type="hidden" value="" />
112 <param name="cl_override" type="hidden" value="" />
113 <param name="dependencies" type="text" value="" label="List additional dependencies - e.g. 'planemo, ephemeris'" help="These will be managed by Conda" />
114 <param name="interpreter_version" type="text" value=""
115 label="Specific interpreter version to match dependency (Conda) repositories - e.g. for python '3.8.5' Latest if empty"/>
116 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True"
117 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately">
118 <sanitizer>
119 <valid initial="string.printable">
120 </valid>
121 <mapping initial="none"/>
122 </sanitizer>
123 </param>
124 </xml>
125 </macros>
126 <requirements>
127 <requirement type="package">python</requirement>
128 <requirement type="package">galaxyxml</requirement>
129 <requirement type="package">planemo</requirement>
130 <requirement type="package">yaml</requirement>
131 <requirement type="package">lxml</requirement>
132 </requirements>
133 <command interpreter="python"><![CDATA[
134 #import os
135 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1'
136 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ):
137 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__
138 #else:
139 $__tool_directory__/rgToolFactory2.py
140 --dependencies "$interexe.dependencies"
141 --runmode "$interexe.interpreter"
142 #if len(str($interexe.cl_override)) > 0:
143 --cl_override "$interexe.cl_override"
144 #end if
145 #if str($interexe.interpreter)=="Executable" or str($interexe.interpreter)=="system":
146 --exe_package="$interexe.exe_package"
147 #if $interexe.exe_package_version:
148 --exe_package_version="$interexe.exe_package_version"
149 #end if
150 #else:
151 --interpreter_name="$interexe.interpreter" --script_path "$runme"
152 #if str($interexe.interpreter_version) != 'None':
153 --interpreter_version="$interexe.interpreter_version"
154 #end if
155 #end if
156 --tool_name="$tool_name" --user_email="$__user_email__" --citations="$citeme" --parampass="$ppass.parampass"
157 #if str($makeMode.make_Tool)=="yes":
158 --planemo_test "$makeMode.planemo_test"
159 --make_Tool="$makeMode.make_Tool"
160 --tool_desc="$makeMode.tool_desc"
161 --tool_version="$makeMode.tool_version"
162 --help_text="$helpme"
163 --new_tool="$new_tool"
164 #end if
165 #if $ppass.parampass != '0':
166 #if str($ppass.edit_params) == "yes":
167 --edit_additional_parameters
168 #end if
169 #for apar in $ppass.additional_parameters:
170 --additional_parameters="$apar.param_name~~~$apar.param_value~~~$apar.param_label~~~$apar.param_help~~~$apar.param_type~~~$apar.param_CL~~~$apar.param_CLprefixed"
171 #end for
172 #end if
173 #for $intab in $ppass.history_inputs:
174 --input_files="$intab.input_files~~~$intab.input_CL~~~$intab.input_formats~~~$intab.input_label~~~$intab.input_help"
175 #end for
176 #for $otab in $ppass.history_outputs:
177 --output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL"
178 #end for
179 #end if
180 ]]></command>
181 <configfiles>
182 <configfile name="runme">
183
184 #if $interexe.interpreter != "Executable" and $interexe.interpreter != "system" :
185 ${interexe.dynScript}
186 #else:
187 $tool_name
188 #end if
189 </configfile>
190 <configfile name="helpme">
191 #if $makeMode.make_Tool == "yes":
192 ${makeMode.help_text}
193 #else
194 $tool_name help goes here
195 #end if
196 </configfile>
197 <configfile name="citeme">
198 #if $makeMode.make_Tool == "yes":
199 #for $citation in $makeMode.citations:
200 #if $citation.citation_type.type == "bibtex":
201 **ENTRY**bibtex
202 ${citation.citation_type.bibtex}
203 #else
204 **ENTRY**doi
205 ${citation.citation_type.doi}
206 #end if
207 #end for
208 #end if
209 </configfile>
210 </configfiles>
211 <inputs>
212
213 <param name="tool_name" type="text" value="tool1" label="New tool ID and title for outputs"
214 help="This will become the toolshed repository name so choose thoughtfully to avoid namespace clashes with other tool writers. lower case, digits and underscores only">
215 <sanitizer invalid_char="">
216 <valid initial="string.letters,string.digits">
217 <add value="_"/>
218 </valid>
219 </sanitizer>
220 </param>
221 <conditional name="interexe">
222 <param name="interpreter" type="select" label="Tool model: For a managed external dependency, choose 'Executable', or choose an interpreter for a script"
223 help = "If executable, the supplied package will become a requirement so must match the tool dependency resolver package name - conda is the default.">
224 <option value="Executable" selected="true">An executable binary to be provided and managed by the Conda dependency management subsystem</option>
225 <option value="python">Use Python to run the script pasted below</option>
226 <option value="r-base">Use R (Rscript) to run the script pasted below</option>
227 <option value="perl">Use a depency managed Perl to run the script pasted below</option>
228 <option value="bash">Use the system bash to run the script pasted below</option>
229 <option value="sh">Use sh to run the script pasted below</option>
230 <option value="system" >Use a different system executable such as sed</option>
231 </param>
232 <when value="Executable">
233 <param name="exe_package" type="text" value="" label="Executable/package name for Ddependency manager - e.g. 'bwa'" optional="false"/>
234 <param name="exe_package_version" type="text" value="" label="Executable/package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty" />
235 <param name="cl_override" type="text" value="" label="Command line override prefix - e.g. for ephemeris prepend the specific function such as 'workflow_install'"
236 help="Some packages like ephemerisand planemo require a sub-command - eg planemo test - before parameters are passed. Supply that here"/>
237 <param name="dependencies" type="hidden" value="" />
238 </when>
239 <when value="system">
240 <param name="dependencies" type="hidden" value="" />
241 <param name="exe_package" type="text" value="" label="System executable to run - e.g. awk"/>
242 <param name="exe_package_version" type="hidden" value="" />
243 <param name="cl_override" type="text" value="" label="Command line override prefix - e.g. for sed or awk, prepend this before the i/o parameters"
244 help="This may help finesse a command line - inputs and output will be passed as you specify below"/>
245 </when>
246 <when value = "python">
247 <expand macro="dynpar" />
248 </when>
249 <when value = "r-base">
250 <expand macro="dynpar" />
251 </when>
252 <when value = "perl">
253 <expand macro="dynpar" />
254 </when>
255 <when value = "bash">
256 <expand macro="builtin_dynpar" />
257 </when>
258 <when value = "sh">
259 <expand macro="builtin_dynpar" />
260 </when>
261 </conditional>
262 <conditional name = "ppass">
263
264 <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use">
265 <option value="argparse" selected="true">Argparse style: passed in the form of '--[clname] [value]'</option>
266 <option value="positional">Positional: Passed in the order of positional ordinals '...foo.bam bar.idx zot.xls'</option>
267 <option value="0">No parameters needed because tool reads selected input file from STDIN and writes STDOUT with new history output"</option>
268 </param>
269 <when value = "argparse">
270 <expand macro="io" />
271 <expand macro="additparam" />
272 </when>
273 <when value = "positional">
274 <expand macro="io" />
275 <expand macro="additparam" />
276 </when>
277 <when value = "0">
278 <expand macro="io"/>
279 </when>
280 </conditional>
281 <conditional name="makeMode">
282 <param name="make_Tool" type="select" display="radio" label="Generate new tool as a tar.gz file ready to upload to a toolshed repository"
283 help="Generate a toolshed archive - upload to a toolshed from where it can be auto-installed via the Galaxy admin functions" >
284 <option value="yes">Generate a Galaxy ToolShed compatible toolshed.gz</option>
285 <option value="" selected="true">No. Just run the script please</option>
286 </param>
287 <when value = "yes">
288 <param name="planemo_test" type="select" display="radio" label="Use planemo to test the new tool (takes a while..)"
289 help="Planemo will test the tool, upload it to the local toolshed and install to this Galaxy for additional testing" >
290 <option value="yes" selected="true">Test with planemo and install to this Galaxy if passes</option>
291 <option value="">No test/install</option>
292 </param>
293 <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01"
294 help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/> 6 help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/>
295 <param name="tool_desc" label="Tool Description" type="text" value="" 7 <param name="tool_desc" label="Tool Description" type="text" value=""
296 help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)" /> 8 help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)" />
297 <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true" 9 <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true"
298 value="**What it Does**" 10 value="**What it Does**"
299 help="Supply the brief user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html" > 11 help="Supply user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html" >
300 <sanitizer> 12 <sanitizer>
301 <valid initial="string.printable"> 13 <valid initial="string.printable">
302 </valid> 14 </valid>
303 <mapping initial="none"/> 15 <mapping initial="none"/>
304 </sanitizer> 16 </sanitizer>
323 </sanitizer> 35 </sanitizer>
324 </param> 36 </param>
325 </when> 37 </when>
326 </conditional> 38 </conditional>
327 </repeat> 39 </repeat>
328 </when> 40 </xml>
329 <when value = ""> 41 <xml name="io">
42 <repeat name="history_inputs" title="Add a data file from your history to pass in to the script. Use the '+' button as needed"
43 help="USE SMALL SAMPLES for the new tool's test. Prompts will form a history item selector as input for users of this new tool">
44 <param name="input_files" type="data" format="data" label="Select an input file from your history" optional="true" multiple="false"
45 help=""/>
46 <param name="input_formats" type="select" multiple="true" label="Select the datatype(s) that your tool/script accepts as input"
47 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
48 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
49 <column name="value" index="0"/>
50 </options>
51 </param>
52 <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative"
53 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
54 <sanitizer invalid_char="">
55 <valid initial="string.printable"> <remove value='~~~'/> </valid>
56 <mapping initial="none"/>
57 </sanitizer>
58 </param>
59 <param name="input_help" type="text" value="parameter_help" label="This will become help text on the form."
60 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation">
61 <sanitizer invalid_char="">
62 <valid initial="string.printable"> <remove value='~~~'/> </valid>
63 <mapping initial="none"/>
64 </sanitizer>
65 </param>
66 <param name="input_CL" type="text" label="Positional: ordinal integer. Argparse: argument name. STDIN if the executable/script expects it"
67 help="If you will pass positional parameters, enter the integer ordinal for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value="">
68 </param>
69 </repeat>
70 <repeat name="history_outputs" title="Add a tool run output file to the user's history from your tool - Use the '+' button to add as many as needed"
71 help="The name will become a history item for users of the new tool you are making containing one of it's outputs">
72 <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" help=""/>
73 <param name="history_format" type="select" multiple="false" label="Select the datatype for this output"
74 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
75 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
76 <column name="value" index="0"/>
77 </options>
78 </param>
79 <param name="history_CL" type="text" label="Positional: ordinal integer. Argparse: argument name expected for this output parameter. Use STDOUT if '>' required."
80 help="If positional parameters, enter the integer ordinal expected for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""/>
81 <param name="history_test" type="text" label="Test pass decision criterion for this output compared to test generation"
82 help="Available options are diff:lines, sim_size" value="diff:2"/>
83 </repeat>
84 </xml>
85 <xml name="additparam">
86 <param name="edit_params" type="select" display="radio" label="Add any additional parameters to the generated tool form so they are user editable?"
87 help="If no (default), users will NOT be able to alter any additional parameters. If yes, these will appear on the tool form as text fields with no validation or sanitizing">
88 <option value="yes">Yes, allow user to edit all additional parameters on the generated tool form</option>
89 <option value="no" selected="true">No - use the fixed values for all additional parameters - no user editing</option>
90 </param>
91
92 <repeat name="additional_parameters" title="Pass additional parameters to the script"
93 help="See examples below to see how these can be parsed by scripts in the various languages">
94 <param name="param_name" type="text" value="parameter_name" label="Choose the name for this parameter">
95 <sanitizer invalid_char="">
96 <valid initial="string.letters,string.digits"/>
97 <mapping initial="none"/>
98 </sanitizer>
99 </param>
100 <param name="param_type" type="select" label="Select the type for this parameter">
101 <option value="text" selected="true">text</option>
102 <option value="integer">integer</option>
103 <option value="float">float</option>
104 </param>
105 <param name="param_value" type="text" value="" label="Enter this parameter's default value"
106 help="Note that '~~~' is an internal delimiter must not appear in this text field - please work around this technical limitation" >
107 <sanitizer invalid_char="">
108 <valid initial="string.printable"> <remove value='~~~'/> </valid>
109 <mapping initial="none"/>
110 </sanitizer>
111 </param>
112 <param name="param_label" type="text" value="parameter_label" label="Enter this parameter's label for the form"
113 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
114 <sanitizer invalid_char="">
115 <valid initial="string.printable"> <remove value='~~~'/> </valid>
116 <mapping initial="none"/>
117 </sanitizer>
118 </param>
119 <param name="param_help" type="text" value="parameter_help" label="Help for this parameter"
120 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" >
121 <sanitizer invalid_char="">
122 <valid initial="string.printable"> <remove value='~~~'/> </valid>
123 <mapping initial="none"/>
124 </sanitizer>
125 </param>
126 <param name="param_CL" type="text" label="Positional ordinal | argparse argument name"
127 help="Using positional parameters, enter the integer ordinal for this parameter on the command line. Using Argparse style, '--' will be prepended on the CL" value="" />
128 <param name="param_CLprefixed" type="text" label="Override the generated default argparse name prefix if not empty - eg ----foo if needed"
129 help="Some targets like Planemo expect an unadorned action like 'test' before --galaxy_root." value="" />
130 </repeat>
131 </xml>
132 </macros>
133 <requirements>
134 <requirement type="package">python</requirement>
135 <requirement type="package">perl</requirement>
136 <requirement type="package">r-base</requirement>
137 <requirement type="package">galaxyxml</requirement>
138 <requirement type="package">planemo</requirement>
139 <requirement type="package">yaml</requirement>
140 <requirement type="package">lxml</requirement>
141 </requirements>
142 <command interpreter="python"><![CDATA[
143 #import os
144 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1'
145 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ):
146 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__
147 #else:
148 $__tool_directory__/rgToolFactory2.py
149 #if len(str($cl_prefix)) > 3:
150 --cl_prefix "$cl_prefix"
151 #end if
152 #if $cover.commover == "yes":
153 #if len(str($cover.command_override)) > 10:
154 --command_override "$commandoverride"
155 #end if
156 #if len(str($cover.test_override)) > 10:
157 --test_override "$testoverride"
158 #end if
159 #end if
160 #if $interexe.dependency_model == "managed":
161 --packages "$interexe.packages"
162 #else:
163 --sysexe "$interexe.sysexe"
164 #end if
165 --tool_name="$tool_name" --user_email="$__user_email__" --citations="$citeme" --parampass="$ppass.parampass"
166 #if $usescript.choosescript == "yes":
167 --script_path "$runme"
168 #end if
169 #if str($makeMode.make_Tool)!="runonly":
170 --make_Tool="$makeMode.make_Tool"
171 --tool_desc="$makeMode.tool_desc"
172 --tool_version="$makeMode.tool_version"
173 --help_text="$helpme"
174 --new_tool="$new_tool"
175 #end if
176 #if $ppass.parampass != '0':
177 #if str($ppass.edit_params) == "yes":
178 --edit_additional_parameters
179 #end if
180 #for apar in $ppass.additional_parameters:
181 --additional_parameters="$apar.param_name~~~$apar.param_value~~~$apar.param_label~~~$apar.param_help~~~$apar.param_type~~~$apar.param_CL~~~$apar.param_CLprefixed"
182 #end for
183 #end if
184 #for $intab in $ppass.history_inputs:
185 --input_files="$intab.input_files~~~$intab.input_CL~~~$intab.input_formats~~~$intab.input_label~~~$intab.input_help"
186 #end for
187 #for $otab in $ppass.history_outputs:
188 --output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL~~~$otab.history_test"
189 #end for
190 #end if
191 ]]></command>
192 <configfiles>
193 <configfile name="runme">
194 #if $usescript.choosescript == 'yes':
195 $usescript.dynScript
196 #end if
197 </configfile>
198 <configfile name="commandoverride">
199 #if $cover.commover == "yes" and len(str($cover.command_override).strip()) > 1:
200 $cover.command_override
201 #end if
202 </configfile>
203 <configfile name="testoverride">
204 #if $cover.commover == "yes" and len(str($cover.test_override).strip()) > 1:
205 $cover.test_override
206 #end if
207 </configfile>
208 <configfile name="helpme">
209 #if $makeMode.make_Tool != "runonly":
210 ${makeMode.help_text}
211 #else
212 $tool_name help goes here
213 #end if
214 </configfile>
215 <configfile name="citeme">
216 #if $makeMode.make_Tool != "runonly":
217 #for $citation in $makeMode.citations:
218 #if $citation.citation_type.type == "bibtex":
219 **ENTRY**bibtex
220 ${citation.citation_type.bibtex}
221 #else
222 **ENTRY**doi
223 ${citation.citation_type.doi}
224 #end if
225 #end for
226 #end if
227 </configfile>
228 </configfiles>
229 <inputs>
230 <param name="tool_name" type="text" value="tool1" label="New tool ID and title for outputs"
231 help="Toolshed repository name. Choose thoughtfully to avoid namespace clashes with other tool writers. Lower case, digits and underscores only">
232 <sanitizer invalid_char="">
233 <valid initial="string.letters,string.digits">
234 <add value="_"/>
235 </valid>
236 </sanitizer>
237 </param>
238
239 <conditional name="interexe">
240 <param name="dependency_model" type="select" label="Dependency model: Conda managed external dependency or existing system executable"
241 help = "If managed, the supplied package will become a requirement so must match the tool dependency resolver package name in conda.">
242 <option value="managed" selected="true" >Use Conda managed dependencies</option>
243 <option value="system" >Use a non-dependency managed system executable like bash or awk</option>
244 </param>
245 <when value="managed">
246 <param name="packages" type="text" value="" label="Package name[:version, name:version...] for Conda. First will be called on generated command line" optional="false"
247 help="Use colon to append specific versiion like 'bwa:0.17.0'. Default is latest if no version. Will be used every time the tool is (re)run." />
248 <param name="sysexe" type="hidden" value="" />
249 </when>
250 <when value="system">
251 <param name="sysexe" type="text" value="" label="System executable to run. Supplied/managed by the operating system - not Conda" optional="false"
252 help=".e.g bash, awk or other standard and relatively invariant unix utilities"/>
253 <param name="packages" type="hidden" value="" />
330 </when> 254 </when>
331 </conditional> 255 </conditional>
256 <conditional name="usescript">
257 <param name="choosescript" type="select" display="radio" label="Choose whether to run a supplied script - useful only if the dependency can use them"
258 help = "Useful for script interpreters like Python or bash. All i/o and parameters must be passed. Choose No unless script is needed.">
259 <option value="no" selected="true">No script required for the first dependency above - just parameters on the command line</option>
260 <option value="yes">A script is ready to be pasted below.</option>
261 </param>
262 <when value="no">
263 <param name="dynScript" type="hidden" value="" />
264 </when>
265 <when value="yes">
266 <param name="dynScript" type="text" area="True" value="" label="Script for first dependency to interpret. "
267 help="Script must handle all i/o and parameters as specified below using the parameter passing method chosen above">
268 <sanitizer>
269 <valid initial="string.printable">
270 </valid>
271 <mapping initial="none"/>
272 </sanitizer>
273 </param>
274 </when>
275 </conditional>
276 <conditional name="ppass">
277 <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use">
278 <option value="argparse" selected="true">Argparse style: passed in the form of --clname value</option>
279 <option value="positional">Positional: Passed in the order of positional ordinals ...foo.bam bar.idx zot.xls</option>
280 <option value="0">Tool reads selected input file from STDIN and writes STDOUT with new history output with no parameters</option>
281 </param>
282 <when value="argparse">
283 <expand macro="io" />
284 <expand macro="additparam" />
285 </when>
286 <when value="positional">
287 <expand macro="io" />
288 <expand macro="additparam" />
289 </when>
290 <when value="0">
291 <expand macro="io"/>
292 </when>
293 </conditional>
294 <param name="cl_prefix" type="text" value="" label="Prefix for generated command line. Prepends generated i/o and parameter CL. Use override below to replace completely"
295 help="Text will replace generated executable/script elements. Sometimes required before i/o and parameters in the generated command line." />
296 <conditional name="cover">
297 <param name="commover" type="select" display="radio" label="Add Human wrought code to override the generated XML command and/or test section - DIY"
298 help = "For arbitrary and artfull command lines. All i/o and parameters must be passed. Choose No unless needed. Not for the faint of heart">
299 <option value="no" selected="true">Use automatically generated command/test XML </option>
300 <option value="yes">DIY XML needed to replace autogenerated command and/or test segments will be pasted below</option>
301 </param>
302 <when value="no">
303 <param name="command_override" type="hidden" value="" />
304 <param name="test_override" type="hidden" value="" />
305 </when>
306 <when value="yes">
307 <param name="command_override" type="text" area="True" value="" label="Optional. Human wrought command element override XML/template - e.g. for bwa"
308 help="For arbitrary and artfull command lines. All i/o and parameters must be passed. Leave blank unless needed. Not for the faint of heart">
309 <sanitizer>
310 <valid initial="string.printable">
311 </valid>
312 <mapping initial="none"/>
313 </sanitizer>
314 </param>
315 <param name="test_override" type="text" area="True" value="" label="Optional. Human wrought test element override XML/template - e.g. for bwa"
316 help="For arbitrary and artfull scripts. Leave blank unless needed. Not for the faint of heart">
317 <sanitizer>
318 <valid initial="string.printable">
319 </valid>
320 <mapping initial="none"/>
321 </sanitizer>
322 </param>
323 </when>
324 </conditional>
325
326 <conditional name="makeMode">
327 <param name="make_Tool" type="select" display="radio" label="Choose the steps you want to run. Docker is recommended if you want local installation"
328 help="Testing and installation in this Galaxy is optional. Planemo run must be used if you are providing XML overrides for the command or test sections" >
329 <option value="runonly">Run this configuration. NOT suitable for Executable command/test overriden tools</option>
330 <option value="generate" selected="true">Run and generate toolshed archive containing the new tool. NOT suitable for command/test overriden tools</option>
331 <option value="gentest">Run, generate and test the new tool with planemo. NOT suitable for command/test overriden tools</option>
332 <option value="gentestinstall">Run, generate, planemo test and install (via the local toolshed) the new tool. NOT suitable for command/test overriden tools</option>
333 <option value="planemogenerate">Planemo test twice - once to generate test outputs. Suitable for tools with or without command/test overrides but takes time</option>
334 <option value="planemogeninstall">Planemo test twice and install. Suitable for tools with or without command/test overrides.</option>
335 </param>
336 <when value="runonly"/>
337 <when value="generate">
338 <expand macro="planemo_steps" />
339 </when>
340 <when value="gentest">
341 <expand macro="planemo_steps" />
342 </when>
343 <when value="gentestinstall">
344 <expand macro="planemo_steps" />
345 </when>
346 <when value="planemogenerate">
347 <expand macro="planemo_steps" />
348 </when>
349 <when value="planemogeninstall">
350 <expand macro="planemo_steps" />
351 </when>
352 </conditional>
353
332 </inputs> 354 </inputs>
333 <outputs> 355 <outputs>
334 356
335 <data format="tgz" name="new_tool" label="${tool_name}_toolshed.tgz" > 357 <data format="tgz" name="new_tool" label="${tool_name}_toolshed.tgz" >
336 <filter>makeMode['make_Tool'] == "yes"</filter> 358 <filter>makeMode['make_Tool'] != "runonly"</filter>
337 </data> 359 </data>
338 360
339 <collection name="TF_run_report" type="list" label="${tool_name} outputs"> 361 <collection name="TF_run_report" type="list" label="${tool_name} outputs">
340 <discover_datasets pattern="__name_and_ext__" directory="TF_run_report_tempdir" /> 362 <discover_datasets pattern="__name_and_ext__" directory="TF_run_report_tempdir" />
341 </collection> 363 </collection>
349 <param name="input_formats" value="txt" /> 371 <param name="input_formats" value="txt" />
350 <param name="input_label" value="input" /> 372 <param name="input_label" value="input" />
351 <param name="input_help" value="help" /> 373 <param name="input_help" value="help" />
352 <param name="tool_name" value="pyrevpos" /> 374 <param name="tool_name" value="pyrevpos" />
353 <param name="parampass" value="positional" /> 375 <param name="parampass" value="positional" />
354 <param name="make_Tool" value="yes" /> 376 <param name="make_Tool" value="generate" />
355 <param name="tool_version" value="0.01" /> 377 <param name="tool_version" value="0.01" />
356 <param name="tool_desc" value="positional reverse" /> 378 <param name="tool_desc" value="positional reverse" />
357 <param name="help_text" value="help text goes here" /> 379 <param name="help_text" value="help text goes here" />
358 <param name="interpreter" value="python"/> 380 <param name="interpreter" value="python"/>
359 <param name="history_name" value="output2_sample" /> 381 <param name="history_name" value="output2_sample" />