annotate rgToolFactory.xml @ 8:220885b2d7ee

End to end test works. Add tests next
author ross lazarus ross.lazarus@gmail.com
date Sat, 02 Jun 2012 20:02:11 +1000
parents 7221619caefa
children e09c76551bed
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"
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
8 --tool_name "$tool_name" --input_tab "$input1"
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
9 #if $make_HTML.value=="yes" or $factory.make_Tool=="yes":
7
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
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
12 #if $make_HTML.value=="yes":
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
13 --make_HTML "yes"
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
14 #end if
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
15 #if $make_TAB.value=="yes":
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
16 --output_tab "$tab_file"
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
17 #end if
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
18 #if $factory.make_Tool=="yes":
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
19 --make_Tool "$factory.make_Tool"
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
20 --help_text "$helpme"
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
21 --tool_desc "$factory.tool_desc"
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
22 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
23 #end if
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
24 </command>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
25 <inputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
26 <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
27 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
28 <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"/>
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
29 <conditional name="factory">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
30 <param name="make_Tool" type="select" label="Create a tar.gz file ready for local toolshed entry" help="Ready to deploy securely!">
7
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">Not yet, it's still broken</option>
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
33 </param>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
34 <when value = "yes">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
35 <param name="tool_desc" type="text" width="120" value="" help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)" />
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
36 <param name="help_text" type="text" area="true" size="8x80" width="120" value="**What it Does**" help="Supply the brief user documentation to appear on the new tool form as reStructured text" >
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
37 <sanitizer>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
38 <valid initial="string.printable">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
39 </valid>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
40 <mapping initial="none"/>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
41 </sanitizer>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
42 </param>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
43 </when>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
44 </conditional>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
45 <param name="make_HTML" 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"
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
46 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
47 <option value="yes">Yes</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
48 <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
49 </param>
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
50 <param name="make_TAB" type="select" label="Create a new tabular history output"
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
51 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
52 <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
53 <option value="">No</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
54 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
55 <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
56 <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
57 <option value="python">python</option>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
58 <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
59 </param>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
60 <param name="dynScript" label="Your Script Goes Here" type="text" value="" area="True" size="8x80" width="80"
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
61 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.">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
62 <sanitizer>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
63 <valid initial="string.printable">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
64 </valid>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
65 <mapping initial="none"/>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
66 </sanitizer>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
67 </param>
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
68 </inputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
69 <outputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
70 <data format="tabular" name="tab_file" label="${tool_name}.xls">
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
71 <filter> make_TAB=="yes" </filter>
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
72 </data>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
73 <data format="html" name="html_file" label="${tool_name}.html">
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
74 <filter> make_HTML=="yes" or make_Tool=="yes"</filter>
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
75 </data>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
76 </outputs>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
77 <configfiles>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
78 <configfile name="runme">
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
79 ${dynScript}
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
80 </configfile>
8
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
81 #if $factory.make_Tool == "yes":
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
82 <configfile name="helpme">
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
83 $factory.help_text
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
84 </configfile>
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
85 #end if
220885b2d7ee End to end test works. Add tests next
ross lazarus ross.lazarus@gmail.com
parents: 7
diff changeset
86
7
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
87 </configfiles>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
88 <help>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
89 **What it does**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
90 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
91 This is (extremely) insecure.
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
92
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
93 **Restrictions**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
94 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
95 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
96
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
97 **Note to system administrators**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
98 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
99 no harm.
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 **Use on public servers**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
102 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
103
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
104 **Scripting conventions**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
105 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
106 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
107 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
108
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
109 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
110 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
111 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
112 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
113
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
114 **Simple Rscript example**
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
115
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
116 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
117
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
118 ourargs = commandArgs(TRUE)
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
119 inf = ourargs[1]
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
120 outf = ourargs[2]
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
121 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
122 outp = t(inp)
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
123 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
124
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
125 </help>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
126
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
127 </tool>
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
128
7221619caefa Updated name and added crude gzip generator for toolshed
ross lazarus ross.lazarus@gmail.com
parents:
diff changeset
129