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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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