annotate toolfactory/test-data/input1_sample @ 3:1c652687a08f draft default tip

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