annotate rgToolFactory.xml @ 7:7221619caefa

Updated name and added crude gzip generator for toolshed TODO: add tests and new XML tool descriptor as soon as Greg has it nailed down.
author ross lazarus ross.lazarus@gmail.com
date Sat, 02 Jun 2012 10:43:08 +1000
parents
children 220885b2d7ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
1 <tool id="rgTF" name="Tool Factory" version="0.04">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
2 <description>Makes scripts into tools</description>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
3 <command interpreter="python">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
4 #if ( $__user_email__ not in ['ross.lazarus@gmail.com',] ):
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
5 rgToolFactory.py --bad_user $__user_email__
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
6 #else:
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
7 rgToolFactory.py --script_path "$runme" --interpreter "$interpreter"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
8 --tool_name "$tool_name" --input_tab "$input1" --user_email "${__user_email__}"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
9 #if $makeHTML.value=="yes" or $makeTool.value=="yes":
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
10 --output_dir "$html_file.files_path" --output_html "$html_file"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
11 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
12 #if $makeTAB.value=="yes":
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
13 --output_tab "$tab_file"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
14 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
15 #if $makeTool.value=="yes":
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
16 --makeTool "$makeTool"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
17 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
18 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
19 </command>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
20 <inputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
21 <param name="input1" type="data" format="tabular" label="Select an optional input tabular file from your history" optional="true"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
22 help="Your script probably needs an input - but if not, this can be left unassigned"/>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
23 <param name="tool_name" type="text" value="My dynamic script" size="80" label="Title for job outputs" help="Supply a meaningful name here to remind you what the outputs contain"/>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
24 <param name="makeTool" type="select" label="Create a tar.gz file ready for local toolshed entry"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
25 help="Ready to deploy securely! with tests eventually">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
26 <option value="yes">Yes</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
27 <option value="" selected="true">Not yet, it's still broken</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
28 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
29 <param name="makeHTML" type="select" label="Create an HTML output with all script outputs collected together, with thumbnails of new PDF images, the script and a run log file"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
30 help="This is useful for presenting complex outputs and is not needed if your script doesn't create anything other than a single tabular output">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
31 <option value="yes">Yes</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
32 <option value="" selected="true">No</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
33 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
34 <param name="makeTAB" type="select" label="Create a new tabular history output"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
35 help="This is useful if your script creates a single new tabular file you want to appear in the history after the tool executes">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
36 <option value="yes" selected="true">Yes</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
37 <option value="">No</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
38 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
39 <param name="interpreter" type="select" label="Select the interpreter for your code. This must be available on the path of the execution host">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
40 <option value="Rscript" selected="true">Rscript</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
41 <option value="python">python</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
42 <option value="perl (ugh)">perl</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
43 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
44 <param name="dynScript" label="Your Script Goes Here" type="text" value="" area="True" size="8x80" width="80"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
45 help="Expect FIRST CL parameter = the optional input tabular file path (or NONE if not specified). Ensure your script writes tabular output to the path in the SECOND command line parameter it gets."/>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
46 </inputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
47 <outputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
48 <data format="tabular" name="tab_file" label="${tool_name}.xls">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
49 <filter> makeTAB=="yes" </filter>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
50 </data>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
51 <data format="html" name="html_file" label="${tool_name}.html">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
52 <filter> makeHTML=="yes" or makeTool=="yes"</filter>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
53 </data>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
54 </outputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
55 <configfiles>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
56 <configfile name="runme">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
57 ${dynScript}
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
58 </configfile>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
59 </configfiles>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
60 <help>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
61 **What it does**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
62 This tool enables a user to paste and submit an arbitrary R/python/perl script to run in Galaxy.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
63 This is (extremely) insecure.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
64
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
65 **Restrictions**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
66 This tool will ONLY work if your user id has been added to the local copy's list of permitted users.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
67 Ask your friendly Galaxy administrator to edit this tool's source for you if you need this.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
68
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
69 **Note to system administrators**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
70 Under no circumstances should you allow any user to use this tool unless you really, really trust them to do
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
71 no harm.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
72
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
73 **Use on public servers**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
74 is STRONGLY discouraged for obvious reasons
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
75
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
76 **Scripting conventions**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
77 The pasted script will be executed.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
78 It will get the path to the (optional) input tabular data file path or NONE if you do not select one
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
79 as the first command line parameter
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
80
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
81 The script must write it's output as tab delimited text to the path found as the second command line parameter
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
82 Note that if an optional HTML output is selected, all the output files spewed by your script will be nicely presented as links to the user.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
83 Any pdf images will automagically be converted to show thumbnails in that output.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
84 This can be handy for complex scripts creating lots of output.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
85
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
86 **Simple Rscript example**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
87
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
88 A simple "filter" that takes an input file, does something and writes the results to a new tabular file might look like this::
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
89
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
90 ourargs = commandArgs(TRUE)
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
91 inf = ourargs[1]
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
92 outf = ourargs[2]
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
93 inp = read.table(inf,head=F,row.names=NULL,sep='\t')
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
94 outp = t(inp)
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
95 write.table(outp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F)
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
96
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
97 </help>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
98
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
99 </tool>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
100
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
101