Mercurial > repos > fubar > toolfactory
annotate fubar-galaxytoolfactory-ca7db160878a/README.txt @ 5:a90a05c309d3 draft
Deleted selected files
author | fubar |
---|---|
date | Sun, 24 Feb 2013 17:10:19 -0500 |
parents | 8c578211a681 |
children |
rev | line source |
---|---|
3
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
1 # WARNING before you start |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
2 # Install this tool on a private Galaxy ONLY |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
3 # Please NEVER on a public or production instance |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
4 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
5 *Short Story* |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
6 This is an unusual Galaxy tool that generates very simple new Galaxy tools that run the user |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
7 a supplied script (R, python, perl, bash...) over a single input file. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
8 Whenever you run this tool, the ToolFactory, you should have prepared a script to paste into a text box, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
9 and a small test input example ready to select from your history to test your new script |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
10 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
11 If the script runs sucessfully, a new Galaxy tool that runs your script can be generated. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
12 The new tool is in the form of a special new Galaxy datatype - toolshed.gz - as the name suggests, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
13 it's an archive ready to upload to a Galaxy ToolShed as a new tool repository. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
14 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
15 Once it's in a ToolShed, it can be installed into any local Galaxy server from |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
16 the server administrative interface. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
17 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
18 Once your new tool is installed, local users can run it - each time, the script that was supplied |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
19 when it was built will be executed with the input chosen from the user's history. In other words, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
20 the tools you generate with the ToolFactory run just like any other Galaxy tool, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
21 but run your script every time. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
22 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
23 *Reasons to read further* |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
24 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
25 If you use Galaxy to support your research; |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
26 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
27 You and fellow users are sometimes forced to take data out of Galaxy, process it with ugly |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
28 little perl/awk/sed/R... scripts and put it back; |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
29 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
30 You do this when you can't do some transformation in Galaxy (the 90/10 rule); |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
31 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
32 You don't have enough developer resources for wrapping dozens of even relatively simple tools; |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
33 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
34 Your research and your institution would be far better off if those feral scripts were all tucked safely in |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
35 your local toolshed and Galaxy histories. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
36 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
37 *The good news* If it can be trivially scripted, it can be running safely in your |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
38 local Galaxy via your own local toolshed in a few minutes - with functional tests. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
39 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
40 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
41 *Value proposition* The ToolFactory allows Galaxy to efficiently take over most of your lab's dark script matter, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
42 making it reproducible in Galaxy and shareable through the ToolShed. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
43 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
44 That's what this tool does. You paste a simple script and the tool returns |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
45 a new, real Galaxy tool, ready to be installed from the local toolshed to local servers. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
46 Scripts can be wrapped and online literally within minutes. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
47 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
48 *To fully and safely exploit the awesome power* of this tool, Galaxy and the ToolShed, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
49 you should be a developer installing this tool on a private/personal/scratch local instance where you are an admin_user. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
50 Then, if you break it, you get to keep all the pieces |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
51 see https://bitbucket.org/fubar/galaxytoolfactory/wiki/Home |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
52 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
53 ** Installation ** |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
54 This is a Galaxy tool. You can install it most conveniently using the administrative "Search and browse tool sheds" link. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
55 Find the Galaxy Test toolshed (not main) and search for the toolfactory repository. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
56 Open it and review the code and select the option to install it. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
57 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
58 If you can't get the tool that way, the xml and py files here need to be copied into a new tools subdirectory such as tools/toolfactory |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
59 Your tool_conf.xml needs a new entry pointing to the xml file - something like:: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
60 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
61 <section name="Tool building tools" id="toolbuilders"> |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
62 <tool file="toolfactory/rgToolFactory.xml"/> |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
63 </section> |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
64 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
65 If not already there (I just added it to datatypes_conf.xml.sample), please add: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
66 <datatype extension="toolshed.gz" type="galaxy.datatypes.binary:Binary" mimetype="multipart/x-gzip" subclass="True" /> |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
67 to your local data_types_conf.xml. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
68 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
69 Ensure that html sanitization is set to False and uncommented in universe_wsgi.ini |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
70 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
71 You'll have to restart the server for the new tool to be available. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
72 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
73 Of course, R, python, perl etc are needed on your path if you want to test scripts using those interpreters. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
74 Adding new ones to this tool code should be easy enough. Please make suggestions as bitbucket issues and code. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
75 The HTML file code automatically shrinks R's bloated pdfs, and depends on ghostscript. The thumbnails require imagemagick . |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
76 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
77 * Restricted execution * |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
78 The new tool factory tool will then be usable ONLY by admin users - people with IDs in admin_users in universe_wsgi.ini |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
79 **Yes, that's right. ONLY admin_users can run this tool** Think about it for a moment. If allowed to run any |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
80 arbitrary script on your Galaxy server, the only thing that would impede a miscreant bent on destroying all your |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
81 Galaxy data would probably be lack of appropriate technical skills. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
82 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
83 *What it does* This is a tool factory for simple scripts in python, R and perl currently. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
84 Functional tests are automatically generated. How cool is that. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
85 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
86 LIMITED to simple scripts that read one input from the history. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
87 Optionally can write one new history dataset, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
88 and optionally collect any number of outputs into links on an autogenerated HTML |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
89 index page for the user to navigate - useful if the script writes images and output files - pdf outputs |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
90 are shown as thumbnails and R's bloated pdf's are shrunk with ghostscript so that and imagemagik need to |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
91 be avaailable. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
92 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
93 Generated tools can be edited and enhanced like any Galaxy tool, so start small and build up since |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
94 a generated script gets you a serious leg up to a more complex one. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
95 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
96 *What you do* You paste and run your script |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
97 you fix the syntax errors and eventually it runs |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
98 You can use the redo button and edit the script before |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
99 trying to rerun it as you debug - it works pretty well. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
100 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
101 Once the script works on some test data, you can |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
102 generate a toolshed compatible gzip file |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
103 containing your script ready to run as an ordinary Galaxy tool in a |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
104 repository on your local toolshed. That means safe and largely automated installation in any |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
105 production Galaxy configured to use your toolshed. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
106 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
107 *Generated tool Security* Once you install a generated tool, it's just |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
108 another tool - assuming the script is safe. They just run normally and their user cannot do anything unusually insecure |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
109 but please, practice safe toolshed. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
110 Read the fucking code before you install any tool. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
111 Especially this one - it is really scary. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
112 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
113 If you opt for an HTML output, you get all the script outputs arranged |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
114 as a single Html history item - all output files are linked, thumbnails for all the pdfs. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
115 Ugly but really inexpensive. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
116 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
117 Patches and suggestions welcome as bitbucket issues please? |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
118 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
119 long route to June 2012 product |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
120 derived from an integrated script model |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
121 called rgBaseScriptWrapper.py |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
122 Note to the unwary: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
123 This tool allows arbitrary scripting on your Galaxy as the Galaxy user |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
124 There is nothing stopping a malicious user doing whatever they choose |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
125 Extremely dangerous!! |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
126 Totally insecure. So, trusted users only |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
127 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
128 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
129 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
130 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
131 copyright ross lazarus (ross stop lazarus at gmail stop com) May 2012 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
132 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
133 all rights reserved |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
134 Licensed under the LGPL if you want to improve it, feel free https://bitbucket.org/fubar/galaxytoolfactory/wiki/Home |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
135 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
136 Material for our more enthusiastic and voracious readers continues below - we salute you. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
137 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
138 **Motivation** Simple transformation, filtering or reporting scripts get written, run and lost every day in most busy labs |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
139 - even ours where Galaxy is in use. This 'dark script matter' is pervasive and generally not reproducible. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
140 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
141 **Benefits** For our group, this allows Galaxy to fill that important dark script gap - all those "small" bioinformatics |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
142 tasks. Once a user has a working R (or python or perl) script that does something Galaxy cannot currently do (eg transpose a |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
143 tabular file) and takes parameters the way Galaxy supplies them (see example below), they: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
144 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
145 1. Install the tool factory on a personal private instance |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
146 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
147 2. Upload a small test data set |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
148 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
149 3. Paste the script into the 'script' text box and iteratively run the insecure tool on test data until it works right - |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
150 there is absolutely no reason to do this anywhere other than on a personal private instance. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
151 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
152 4. Once it works right, set the 'Generate toolshed gzip' option and run it again. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
153 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
154 5. A toolshed style gzip appears ready to upload and install like any other Toolshed entry. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
155 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
156 6. Upload the new tool to the toolshed |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
157 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
158 7. Ask the local admin to check the new tool to confirm it's not evil and install it in the local production galaxy |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
159 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
160 **Simple examples on the tool form** |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
161 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
162 A simple Rscript "filter" showing how the command line parameters can be handled, takes an input file, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
163 does something (transpose in this case) and writes the results to a new tabular file:: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
164 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
165 # transpose a tabular input file and write as a tabular output file |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
166 ourargs = commandArgs(TRUE) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
167 inf = ourargs[1] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
168 outf = ourargs[2] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
169 inp = read.table(inf,head=F,row.names=NULL,sep='\t') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
170 outp = t(inp) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
171 write.table(outp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
172 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
173 Calculate a multiple test adjusted p value from a column of p values - for this script to be useful, |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
174 it needs the right column for the input to be specified in the code for the |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
175 given input file type(s) specified when the tool is generated :: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
176 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
177 # use p.adjust - assumes a HEADER row and column 1 - please fix for any real use |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
178 column = 1 # adjust if necessary for some other kind of input |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
179 fdrmeth = 'BH' |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
180 ourargs = commandArgs(TRUE) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
181 inf = ourargs[1] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
182 outf = ourargs[2] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
183 inp = read.table(inf,head=T,row.names=NULL,sep='\t') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
184 p = inp[,column] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
185 q = p.adjust(p,method=fdrmeth) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
186 newval = paste(fdrmeth,'p-value',sep='_') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
187 q = data.frame(q) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
188 names(q) = newval |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
189 outp = cbind(inp,newval=q) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
190 write.table(outp,outf, quote=FALSE, sep="\t",row.names=F,col.names=T) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
191 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
192 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
193 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
194 Another Rscript example without any input file - generates a random heatmap pdf - you must make sure the option to create an HTML output file is |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
195 turned on for this to work. The heatmap will be presented as a thumbnail linked to the pdf in the resulting HTML page:: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
196 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
197 # note this script takes NO input or output because it generates random data |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
198 foo = data.frame(a=runif(100),b=runif(100),c=runif(100),d=runif(100),e=runif(100),f=runif(100)) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
199 bar = as.matrix(foo) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
200 pdf( "heattest.pdf" ) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
201 heatmap(bar,main='Random Heatmap') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
202 dev.off() |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
203 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
204 A Python example that reverses each row of a tabular file. You'll need to remove the leading spaces for this to work if cut |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
205 and pasted into the script box. Note that you can already do this in Galaxy by setting up the cut columns tool with the |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
206 correct number of columns in reverse order,but this script will work for any number of columns so is completely generic:: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
207 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
208 # reverse order of columns in a tabular file |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
209 import sys |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
210 inp = sys.argv[1] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
211 outp = sys.argv[2] |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
212 i = open(inp,'r') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
213 o = open(outp,'w') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
214 for row in i: |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
215 rs = row.rstrip().split('\t') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
216 rs.reverse() |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
217 o.write('\t'.join(rs)) |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
218 o.write('\n') |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
219 i.close() |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
220 o.close() |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
221 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
222 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
223 **Attribution** Copyright Ross Lazarus (ross period lazarus at gmail period com) May 2012 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
224 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
225 All rights reserved. |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
226 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
227 Licensed under the LGPL |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
228 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
229 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
230 **Obligatory screenshot** |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
231 |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
232 http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png |
8c578211a681
Fixed nasty silly bug - fixed locally but not previously propogated
fubar
parents:
diff
changeset
|
233 |