diff README.txt @ 7:7221619caefa

Updated name and added crude gzip generator for toolshed TODO: add tests and new XML tool descriptor as soon as Greg has it nailed down.
author ross lazarus ross.lazarus@gmail.com
date Sat, 02 Jun 2012 10:43:08 +1000
parents 78044a3d4a21
children 7725e4ab27e1
line wrap: on
line diff
--- a/README.txt	Thu May 31 10:49:22 2012 +1000
+++ b/README.txt	Sat Jun 02 10:43:08 2012 +1000
@@ -1,28 +1,29 @@
-= WARNING before you start =
-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.
+= WARNING before you start = This tool should only ever be installed on a private Galaxy instance - NEVER use it on a public 
+Galaxy because the risks are too awful to contemplate let alone manage. You have been warned.
 
-== Motivation ==
-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. 
+== Motivation == 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.
 
-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. 
+== Benefits == For our group, this allows Galaxy to fill that important dark script gap - all those "small" bioinformatics 
+tasks. Once a user has a working R (or python or perl) script that does something Galaxy cannot currently do (eg transpose a 
+tabular file) and takes parameters the way Galaxy supplies them (see example below), they:
 
-== Benefits ==
-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: 
-
-1) run the new tool
+1. Install the tool factory on a personal private instance
 
-2) paste their code into the tool 'script' text box
+2. Upload a small test data set
 
-3) select the optional history input (and some other odds and ends - see screen shot) and 
+3. Paste the script into the 'script' text box and iteratively run the insecure tool on test data until it works right - 
+there is absolutely no reason to do this anywhere other than on a personal private instance. 
 
-4) run the tool and thus the script. 
+4. Once it works right, set the 'Generate toolshed gzip' option and run it again. 
 
-== Proposal - a Galaxy toolshed interface ==
-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? 
+5. A toolshed style gzip appears ready to upload and install like any other Toolshed entry. 
+
+6. Upload the new tool to the toolshed
 
-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.
+7. Ask the local admin to check the new tool to confirm it's not evil and install it in the local production galaxy
 
-Does this seem like a good idea to anyone else?
+New mantra: Galaxy can efficiently soak up all your lab's dark script matter and make it reproducible and shareable.
 
 == Proof of concept ==
 
@@ -30,14 +31,15 @@
 [[http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png|proof of concept screengrab]]
 
 === Sample Rscript ===
-As a working example, this trivial Rscript replaces the score column in a bed file with a random number:
+As a working example, this trivial Rscript transposes a tabular file:
+
 {{{
   ourargs = commandArgs(TRUE)
   inf = ourargs[1]
   outf = ourargs[2]
   inp = read.table(inf,head=F,row.names=NULL,sep='\t')
-  inp[,5] = runif ( nrow(inp) )
-  write.table(inp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F)
+  outp = t(inp)
+  write.table(outp,outf, quote=FALSE, sep="\t",row.names=F,col.names=F)
 }}}
 
 == Licensing ==