comparison README.txt @ 6:78044a3d4a21

Readme = wiki more or less now
author Ross Lazarus <ross.lazarus@gmail.com>
date Thu, 31 May 2012 10:49:22 +1000
parents 9c1a1e0e664a
children 7221619caefa
comparison
equal deleted inserted replaced
5:9c1a1e0e664a 6:78044a3d4a21
1 After a lot of nagging about how hard it was to create new wrappers for trivial scripts, I wrote a new Galaxy tool (see the 1 = WARNING before you start =
2 source tab) locked down to allow only two other trusted bioinformatician users to paste and run (NO sandbox!) arbitrary 2 This tool should only ever be installed on a private instance - NEVER use it on a public Galaxy because the risks are too awful to contemplate let alone manage. You have been warned.
3 scripts - see screenshot attached. Note that this tool allows unrestricted access as user Galaxy so should be restricted to
4 admin users who could run rm -rf from a command line if they wanted to but can be trusted not to!
5 3
6 For our group, this allows Galaxy to fill that important gap - all those "small" bioinformatics tasks that currently get run 4 == Motivation ==
7 outside Galaxy. Once a trusted user has a working R (or python or perl) script that takes parameters the way Galaxy supplies 5 Simple transformation, filtering or reporting scripts get written, run and lost every day in most busy labs - even ours where Galaxy is in use. This 'dark script matter' is pervasive and generally not reproducible.
8 them (see example below), they: 6
7 After considerable nagging, I wrote and installed a new tool locked down to allow only two other trusted bioinformatician users to paste and run (NO sandbox!) arbitrary scripts - see screenshot attached.
8
9 == Benefits ==
10 For our group, this allows Galaxy to fill that important dark script gap - all those "small" bioinformatics tasks - because once a trusted user has a working R (or python or perl) script that takes parameters the way Galaxy supplies them (see example below), they:
9 11
10 1) run the new tool 12 1) run the new tool
11 13
12 2) paste their code into the tool 'script' text box 14 2) paste their code into the tool 'script' text box
13 15
14 3) select the optional history input (and some other odds and ends - see screen shot) and 16 3) select the optional history input (and some other odds and ends - see screen shot) and
15 17
16 4) run the tool and thus the script. 18 4) run the tool and thus the script.
17 19
18 Rerunning the output reruns the same script of course, so we're now better off than we were before. But what about adding 20 == Proposal - a Galaxy toolshed interface ==
19 some code to this script runner tool to generate a new Galaxy tool as a ready to install toolshed entry? This (imho) will be 21 Rerunning the output of the existing script reruns the same script of course, so we're now better off than we were before. But what about adding some code to this script runner tool to generate a new Galaxy tool as a ready to install toolshed entry?
20 a very low impedence way to generate new simple Galaxy tools - run them until they work then package them up and
21 deploy/distribute for any user to use. The tool generator itself is dangerous but it could easily create normal Galaxy tools
22 with no new security risks - in the local toolshed!
23 22
24 That's the goal of this project. 23 This (imho) will be a very low impedence way to generate new simple Galaxy tools - run them until they work then package them up and deploy/distribute for any user to use - no new security risks.
25 24
26 If this seem like a good idea to anyone else, please join in. First ticket - add a tool repository entry generator - is open 25 Does this seem like a good idea to anyone else?
27 and waiting...
28 26
29 http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png is a proof of concept screengrab 27 == Proof of concept ==
30 28
31 This trivial example script replaces the score column with a random number in a bed file using Rscript: 29 === Obligatory screenshot ===
30 [[http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png|proof of concept screengrab]]
32 31
32 === Sample Rscript ===
33 As a working example, this trivial Rscript replaces the score column in a bed file with a random number:
34 {{{
33 ourargs = commandArgs(TRUE) 35 ourargs = commandArgs(TRUE)
36 inf = ourargs[1]
37 outf = ourargs[2]
38 inp = read.table(inf,head=F,row.names=NULL,sep='\t')
39 inp[,5] = runif ( nrow(inp) )
40 write.table(inp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F)
41 }}}
34 42
35 inf = ourargs[1] 43 == Licensing ==
44 All project artefacts are copyright Ross Lazarus (ross period lazarus at gmail period com) 2012
45 All rights reserved.
46 You may accept a license from me under the LGPL if you want to use this code for any reason.
47 Please see http://www.gnu.org/licenses/lgpl.html for details
36 48
37 outf = ourargs[2]
38 49
39 inp = read.table(inf,head=F,row.names=NULL,sep='\t')
40
41 inp[,5] = runif ( nrow(inp) )
42
43 write.table(inp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F)
44