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