Mercurial > repos > fubar > tool_factory_2
comparison toolfactory/rgToolFactory2.xml @ 50:bf432f4486c7 draft
Uploaded
author | fubar |
---|---|
date | Sun, 30 Aug 2020 01:45:27 -0400 |
parents | 35a912ce0c83 |
children | e8bf01166d74 |
comparison
equal
deleted
inserted
replaced
49:35a912ce0c83 | 50:bf432f4486c7 |
---|---|
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="planemo_steps"> | 4 <xml name="tool_metadata"> |
5 <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01" | 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="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"/> |
7 <param name="tool_desc" label="Tool Description" type="text" value="" | 7 <param name="tool_desc" label="Tool Description" type="text" value="" |
8 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)" /> |
9 <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" |
128 <param name="param_CLprefixed" type="text" label="Override the generated default argparse name prefix if not empty - eg ----foo if needed" | 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="" /> | 129 help="Some targets like Planemo expect an unadorned action like 'test' before --galaxy_root." value="" /> |
130 </repeat> | 130 </repeat> |
131 </xml> | 131 </xml> |
132 </macros> | 132 </macros> |
133 <requirements> | 133 <requirements> |
134 <requirement type="package">python</requirement> | 134 <requirement type="package" version="0.1">planemoenv</requirement> |
135 <requirement type="package">perl</requirement> | 135 </requirements> |
136 <requirement type="package">r-base</requirement> | 136 <command ><![CDATA[ |
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 | 137 #import os |
144 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1' | 138 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1' |
145 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ): | 139 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ): |
146 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__ | 140 python3 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__ |
147 #else: | 141 #else: |
148 $__tool_directory__/rgToolFactory2.py | 142 python3 $__tool_directory__/rgToolFactory2.py |
149 #if len(str($cl_prefix)) > 3: | 143 #if len(str($cl_prefix)) > 3: |
150 --cl_prefix "$cl_prefix" | 144 --cl_prefix "$cl_prefix" |
151 #end if | 145 #end if |
152 #if $cover.commover == "yes": | 146 #if $cover.commover == "yes": |
153 #if len(str($cover.command_override)) > 10: | 147 #if len(str($cover.command_override)) > 10: |
189 #end for | 183 #end for |
190 #end if | 184 #end if |
191 ]]></command> | 185 ]]></command> |
192 <configfiles> | 186 <configfiles> |
193 <configfile name="runme"> | 187 <configfile name="runme"> |
194 #if $usescript.choosescript == 'yes': | |
195 $usescript.dynScript | 188 $usescript.dynScript |
196 #end if | |
197 </configfile> | 189 </configfile> |
198 <configfile name="commandoverride"> | 190 <configfile name="commandoverride"> |
199 #if $cover.commover == "yes" and len(str($cover.command_override).strip()) > 1: | 191 #if $cover.commover == "yes" and len(str($cover.command_override).strip()) > 1: |
200 $cover.command_override | 192 $cover.command_override |
201 #end if | 193 #end if |
237 </param> | 229 </param> |
238 | 230 |
239 <conditional name="interexe"> | 231 <conditional name="interexe"> |
240 <param name="dependency_model" type="select" label="Dependency model: Conda managed external dependency or existing system executable" | 232 <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."> | 233 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> | 234 <option value="managed" selected="true" >Use Conda managed dependencies for scripting (python, R,....) or command line packages (bwa,samtools)</option> |
243 <option value="system" >Use a non-dependency managed system executable like bash or awk</option> | 235 <option value="system" >Use a non-dependency managed system executable for scripting like bash or command line driven like sed or awk</option> |
244 </param> | 236 </param> |
245 <when value="managed"> | 237 <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" | 238 <param name="packages" type="text" value="" label="Package name[:version, name:version...] for Conda. First (e.g. python) will be called on generated command line" |
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." /> | 239 optional="false" help="Use :[ver] for specific version - 'bwa:0.17.0'. Default is latest. Will be used every time the tool is (re)run." /> |
248 <param name="sysexe" type="hidden" value="" /> | 240 <param name="sysexe" type="hidden" value="" /> |
249 </when> | 241 </when> |
250 <when value="system"> | 242 <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" | 243 <param name="sysexe" type="text" value="" label="System executable to run. OS version - not Conda managed" optional="false" |
252 help=".e.g bash, awk or other standard and relatively invariant unix utilities"/> | 244 help=".e.g bash, awk or other standard and relatively invariant unix utilities"/> |
253 <param name="packages" type="hidden" value="" /> | 245 <param name="packages" type="hidden" value="" /> |
254 </when> | 246 </when> |
255 </conditional> | 247 </conditional> |
256 <conditional name="usescript"> | 248 <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" | 249 <param name="choosescript" type="select" display="radio" label="Run a supplied script if the dependency reads one (e.g. python/R/bash)" |
258 help = "Useful for script interpreters like Python or bash. All i/o and parameters must be passed. Choose No unless script is needed."> | 250 help = "For script interpreters like Python or bash. Parameters and i/o below must match script's expectations"> |
259 <option value="no" selected="true">No script required for the first dependency above - just parameters on the command line</option> | 251 <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> | 252 <option value="yes">Yes, a script is ready to be pasted below for the chosen package</option> |
261 </param> | 253 </param> |
262 <when value="no"> | 254 <when value="no"> |
263 <param name="dynScript" type="hidden" value="" /> | 255 <param name="dynScript" type="hidden" value="" /> |
264 </when> | 256 </when> |
265 <when value="yes"> | 257 <when value="yes"> |
266 <param name="dynScript" type="text" area="True" value="" label="Script for first dependency to interpret. " | 258 <param name="dynScript" type="text" area="True" value="" label="Script for first dependency above (e.g. python) to interpret. " |
267 help="Script must handle all i/o and parameters as specified below using the parameter passing method chosen above"> | 259 help="Script must handle all i/o and parameters as specified below using the parameters and passing method chosen below"> |
268 <sanitizer> | 260 <sanitizer> |
269 <valid initial="string.printable"> | 261 <valid initial="string.printable"> |
270 </valid> | 262 </valid> |
271 <mapping initial="none"/> | 263 <mapping initial="none"/> |
272 </sanitizer> | 264 </sanitizer> |
273 </param> | 265 </param> |
274 </when> | 266 </when> |
275 </conditional> | 267 </conditional> |
276 <conditional name="ppass"> | 268 <conditional name="ppass"> |
277 <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use"> | 269 <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> | 270 <option value="argparse" selected="true">Argparse: 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> | 271 <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> | 272 <option value="0">Tool reads selected input file from STDIN and writes STDOUT with no parameters</option> |
281 </param> | 273 </param> |
282 <when value="argparse"> | 274 <when value="argparse"> |
283 <expand macro="io" /> | 275 <expand macro="io" /> |
284 <expand macro="additparam" /> | 276 <expand macro="additparam" /> |
285 </when> | 277 </when> |
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" | 286 <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." /> | 287 help="Text will replace generated executable/script elements. Sometimes required before i/o and parameters in the generated command line." /> |
296 <conditional name="cover"> | 288 <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" | 289 <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"> | 290 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> | 291 <option value="no" selected="true">No. 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> | 292 <option value="yes">Yes. XML needed to override autogenerated command and/or test segments will be pasted below</option> |
301 </param> | 293 </param> |
302 <when value="no"> | 294 <when value="no"> |
303 <param name="command_override" type="hidden" value="" /> | 295 <param name="command_override" type="hidden" value="" /> |
304 <param name="test_override" type="hidden" value="" /> | 296 <param name="test_override" type="hidden" value="" /> |
305 </when> | 297 </when> |
322 </param> | 314 </param> |
323 </when> | 315 </when> |
324 </conditional> | 316 </conditional> |
325 | 317 |
326 <conditional name="makeMode"> | 318 <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" | 319 <param name="make_Tool" type="select" display="radio" label="Choose the steps you want to run. The TF Docker container is recommended for 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" > | 320 help="Testing and installation in this Galaxy are optional" > |
329 <option value="runonly">Run this configuration. NOT suitable for Executable command/test overriden tools</option> | 321 <option value="runonly">Run this configuration in Galaxy (will run Planemo if command or test override in play)</option> |
330 <option value="generate" selected="true">Run and generate toolshed archive containing the new tool. NOT suitable for command/test overriden tools</option> | 322 <option value="generate">Generate a toolshed ready archive.</option> |
331 <option value="gentest">Run, generate and test the new tool with planemo. NOT suitable for command/test overriden tools</option> | 323 <option value="gentest" selected="true">Test with planemo after generating.</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> | 324 <option value="gentestinstall">Install in this Galaxy after generation and testing. Must have local ToolShed as in the TF Docker container</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> | 325 </param> |
336 <when value="runonly"/> | 326 <when value="runonly"/> |
337 <when value="generate"> | 327 <when value="generate"> |
338 <expand macro="planemo_steps" /> | 328 <expand macro="tool_metadata" /> |
339 </when> | 329 </when> |
340 <when value="gentest"> | 330 <when value="gentest"> |
341 <expand macro="planemo_steps" /> | 331 <expand macro="tool_metadata" /> |
342 </when> | 332 </when> |
343 <when value="gentestinstall"> | 333 <when value="gentestinstall"> |
344 <expand macro="planemo_steps" /> | 334 <expand macro="tool_metadata" /> |
345 </when> | |
346 <when value="planemogenerate"> | |
347 <expand macro="planemo_steps" /> | |
348 </when> | |
349 <when value="planemogeninstall"> | |
350 <expand macro="planemo_steps" /> | |
351 </when> | 335 </when> |
352 </conditional> | 336 </conditional> |
353 | 337 |
354 </inputs> | 338 </inputs> |
355 <outputs> | 339 <outputs> |
359 </data> | 343 </data> |
360 | 344 |
361 <collection name="TF_run_report" type="list" label="${tool_name} outputs"> | 345 <collection name="TF_run_report" type="list" label="${tool_name} outputs"> |
362 <discover_datasets pattern="__name_and_ext__" directory="TF_run_report_tempdir" /> | 346 <discover_datasets pattern="__name_and_ext__" directory="TF_run_report_tempdir" /> |
363 </collection> | 347 </collection> |
364 | |
365 | |
366 </outputs> | 348 </outputs> |
367 <tests> | 349 <tests> |
368 <test> | 350 <test> |
351 <param name="user_email" value="admin@galaxy.org"/> | |
369 <param name="input_files" value="input1_sample" /> | 352 <param name="input_files" value="input1_sample" /> |
370 <param name="input_CL" value="1" /> | 353 <param name="input_CL" value="1" /> |
371 <param name="input_formats" value="txt" /> | 354 <param name="input_formats" value="txt" /> |
372 <param name="input_label" value="input" /> | 355 <param name="input_label" value="input" /> |
373 <param name="input_help" value="help" /> | 356 <param name="input_help" value="help" /> |
375 <param name="parampass" value="positional" /> | 358 <param name="parampass" value="positional" /> |
376 <param name="make_Tool" value="generate" /> | 359 <param name="make_Tool" value="generate" /> |
377 <param name="tool_version" value="0.01" /> | 360 <param name="tool_version" value="0.01" /> |
378 <param name="tool_desc" value="positional reverse" /> | 361 <param name="tool_desc" value="positional reverse" /> |
379 <param name="help_text" value="help text goes here" /> | 362 <param name="help_text" value="help text goes here" /> |
380 <param name="interpreter" value="python"/> | 363 <param name="packages" value="python"/> |
381 <param name="history_name" value="output2_sample" /> | 364 <param name="history_name" value="output2" /> |
382 <param name="history_format" value="txt" /> | 365 <param name="history_format" value="txt" /> |
383 <param name="history_CL" value="2" /> | 366 <param name="history_CL" value="2" /> |
384 <param name="dynScript" value="import sys; inp = sys.argv[1]; outp = sys.argv[2]; inlist = open(inp,'r').readlines(); o = open(outp,'w'); rs = [''.join(list(reversed(x.rstrip()))) for x in inlist]; o.write('\n'.join(rs)); o.close()"/> | 367 <param name="dynScript" value="import sys; inp = sys.argv[1]; outp = sys.argv[2]; inlist = open(inp,'r').readlines(); o = open(outp,'w'); rs = [''.join(list(reversed(x.rstrip()))) for x in inlist]; o.write('\n'.join(rs)); o.close()"/> |
368 <param name="choosescript" value="yes" /> | |
369 <param name="script_path" value="$runme"/> | |
385 <output name="new_tool" file="toolfactory_pyrevpos_tgz_sample" compare="sim_size" delta="6000" /> | 370 <output name="new_tool" file="toolfactory_pyrevpos_tgz_sample" compare="sim_size" delta="6000" /> |
386 <!-- <output name="output" file="output2_sample" ftype="txt" compare="diff" lines_diff = "10" /> --> | |
387 </test> | 371 </test> |
388 </tests> | 372 </tests> |
389 <help> | 373 <help> |
390 | 374 |
391 .. class:: warningmark | 375 .. class:: warningmark |
470 o.write(''.join(rs)) | 454 o.write(''.join(rs)) |
471 o.write('\n') | 455 o.write('\n') |
472 o.close() | 456 o.close() |
473 | 457 |
474 | 458 |
475 Paper_ : | 459 |
476 | 460 Paper_ |
477 Creating re-usable tools from scripts: The Galaxy Tool Factory | 461 |
478 Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team | 462 *Licensing* |
479 Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573 | |
480 | |
481 **Licensing** | |
482 | 463 |
483 Copyright Ross Lazarus (ross period lazarus at gmail period com) May 2012 | 464 Copyright Ross Lazarus (ross period lazarus at gmail period com) May 2012 |
484 All rights reserved. | 465 All rights reserved. |
485 Licensed under the LGPL_ | 466 Licensed under the LGPL_ |
486 | 467 |