Mercurial > repos > fubar > tool_factory_2
comparison test-data/input1_sample @ 42:b938475235e3 draft
Uploaded
author | fubar |
---|---|
date | Sun, 16 Aug 2020 08:33:09 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
41:f8c1694190f0 | 42:b938475235e3 |
---|---|
1 *WARNING before you start* | |
2 | |
3 Install this tool on a private Galaxy ONLY | |
4 Please NEVER on a public or production instance | |
5 | |
6 Updated august 2014 by John Chilton adding citation support | |
7 | |
8 Updated august 8 2014 to fix bugs reported by Marius van den Beek | |
9 | |
10 Please cite the resource at | |
11 http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref | |
12 if you use this tool in your published work. | |
13 | |
14 **Short Story** | |
15 | |
16 This is an unusual Galaxy tool capable of generating new Galaxy tools. | |
17 It works by exposing *unrestricted* and therefore extremely dangerous scripting | |
18 to all designated administrators of the host Galaxy server, allowing them to | |
19 run scripts in R, python, sh and perl over multiple selected input data sets, | |
20 writing a single new data set as output. | |
21 | |
22 *You have a working r/python/perl/bash script or any executable with positional or argparse style parameters* | |
23 | |
24 It can be turned into an ordinary Galaxy tool in minutes, using a Galaxy tool. | |
25 | |
26 | |
27 **Automated generation of new Galaxy tools for installation into any Galaxy** | |
28 | |
29 A test is generated using small sample test data inputs and parameter settings you supply. | |
30 Once the test case outputs have been produced, they can be used to build a | |
31 new Galaxy tool. The supplied script or executable is baked as a requirement | |
32 into a new, ordinary Galaxy tool, fully workflow compatible out of the box. | |
33 Generated tools are installed via a tool shed by an administrator | |
34 and work exactly like all other Galaxy tools for your users. | |
35 | |
36 **More Detail** | |
37 | |
38 To use the ToolFactory, you should have prepared a script to paste into a | |
39 text box, or have a package in mind and a small test input example ready to select from your history | |
40 to test your new script. | |
41 | |
42 ```planemo test rgToolFactory2.xml --galaxy_root ~/galaxy --test_data ~/galaxy/tools/tool_makers/toolfactory/test-data``` works for me | |
43 | |
44 There is an example in each scripting language on the Tool Factory form. You | |
45 can just cut and paste these to try it out - remember to select the right | |
46 interpreter please. You'll also need to create a small test data set using | |
47 the Galaxy history add new data tool. | |
48 | |
49 If the script fails somehow, use the "redo" button on the tool output in | |
50 your history to recreate the form complete with broken script. Fix the bug | |
51 and execute again. Rinse, wash, repeat. | |
52 | |
53 Once the script runs sucessfully, a new Galaxy tool that runs your script | |
54 can be generated. Select the "generate" option and supply some help text and | |
55 names. The new tool will be generated in the form of a new Galaxy datatype | |
56 *toolshed.gz* - as the name suggests, it's an archive ready to upload to a | |
57 Galaxy ToolShed as a new tool repository. | |
58 | |
59 Once it's in a ToolShed, it can be installed into any local Galaxy server | |
60 from the server administrative interface. | |
61 | |
62 Once the new tool is installed, local users can run it - each time, the script | |
63 that was supplied when it was built will be executed with the input chosen | |
64 from the user's history. In other words, the tools you generate with the | |
65 ToolFactory run just like any other Galaxy tool,but run your script every time. | |
66 | |
67 Tool factory tools are perfect for workflow components. One input, one output, | |
68 no variables. | |
69 | |
70 *To fully and safely exploit the awesome power* of this tool, | |
71 Galaxy and the ToolShed, you should be a developer installing this | |
72 tool on a private/personal/scratch local instance where you are an | |
73 admin_user. Then, if you break it, you get to keep all the pieces see | |
74 https://bitbucket.org/fubar/galaxytoolfactory/wiki/Home | |
75 | |
76 **Installation** | |
77 This is a Galaxy tool. You can install it most conveniently using the | |
78 administrative "Search and browse tool sheds" link. Find the Galaxy Main | |
79 toolshed at https://toolshed.g2.bx.psu.edu/ and search for the toolfactory | |
80 repository. Open it and review the code and select the option to install it. | |
81 | |
82 If you can't get the tool that way, the xml and py files here need to be | |
83 copied into a new tools | |
84 subdirectory such as tools/toolfactory Your tool_conf.xml needs a new entry | |
85 pointing to the xml | |
86 file - something like:: | |
87 | |
88 <section name="Tool building tools" id="toolbuilders"> | |
89 <tool file="toolfactory/rgToolFactory.xml"/> | |
90 </section> | |
91 | |
92 If not already there, | |
93 please add: | |
94 <datatype extension="toolshed.gz" type="galaxy.datatypes.binary:Binary" | |
95 mimetype="multipart/x-gzip" subclass="True" /> | |
96 to your local data_types_conf.xml. | |
97 | |
98 | |
99 **Restricted execution** | |
100 | |
101 The tool factory tool itself will then be usable ONLY by admin users - | |
102 people with IDs in admin_users in universe_wsgi.ini **Yes, that's right. ONLY | |
103 admin_users can run this tool** Think about it for a moment. If allowed to | |
104 run any arbitrary script on your Galaxy server, the only thing that would | |
105 impede a miscreant bent on destroying all your Galaxy data would probably | |
106 be lack of appropriate technical skills. | |
107 | |
108 **What it does** | |
109 | |
110 This is a tool factory for simple scripts in python, R and | |
111 perl currently. Functional tests are automatically generated. How cool is that. | |
112 | |
113 LIMITED to simple scripts that read one input from the history. Optionally can | |
114 write one new history dataset, and optionally collect any number of outputs | |
115 into links on an autogenerated HTML index page for the user to navigate - | |
116 useful if the script writes images and output files - pdf outputs are shown | |
117 as thumbnails and R's bloated pdf's are shrunk with ghostscript so that and | |
118 imagemagik need to be available. | |
119 | |
120 Generated tools can be edited and enhanced like any Galaxy tool, so start | |
121 small and build up since a generated script gets you a serious leg up to a | |
122 more complex one. | |
123 | |
124 **What you do** | |
125 | |
126 You paste and run your script, you fix the syntax errors and | |
127 eventually it runs. You can use the redo button and edit the script before | |
128 trying to rerun it as you debug - it works pretty well. | |
129 | |
130 Once the script works on some test data, you can generate a toolshed compatible | |
131 gzip file containing your script ready to run as an ordinary Galaxy tool in | |
132 a repository on your local toolshed. That means safe and largely automated | |
133 installation in any production Galaxy configured to use your toolshed. | |
134 | |
135 **Generated tool Security** | |
136 | |
137 Once you install a generated tool, it's just | |
138 another tool - assuming the script is safe. They just run normally and their | |
139 user cannot do anything unusually insecure but please, practice safe toolshed. | |
140 Read the code before you install any tool. Especially this one - it is really scary. | |
141 | |
142 **Send Code** | |
143 | |
144 Patches and suggestions welcome as bitbucket issues please? | |
145 | |
146 **Attribution** | |
147 | |
148 Creating re-usable tools from scripts: The Galaxy Tool Factory | |
149 Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team | |
150 Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573 | |
151 | |
152 http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref | |
153 | |
154 **Licensing** | |
155 | |
156 Copyright Ross Lazarus 2010 | |
157 ross lazarus at g mail period com | |
158 | |
159 All rights reserved. | |
160 | |
161 Licensed under the LGPL | |
162 | |
163 **Obligatory screenshot** | |
164 | |
165 http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png | |
166 |