comparison synapse_query.xml @ 2:a104cc98359c

Uploaded
author kellrott
date Tue, 24 Jul 2012 17:34:37 -0400
parents
children 93c4d2fad9af
comparison
equal deleted inserted replaced
1:7a60e992bfb0 2:a104cc98359c
1 <tool id="synapse_query" name="Synapse Query" version="1.0">
2 <description>Query Synapse</description>
3 <command interpreter="python">$script_file
4 #if str( $user ) != '':
5 -u "$user"
6 #end if
7
8 #if str( $pass ) != '':
9 -p "$pass"
10 #end if
11 -o $outfile
12 </command>
13 <inputs>
14 <param name="user" type="text" size="90" label="Username"/>
15 <param name="pass" type="text" size="90" label="Password"/>
16 <param name="query" type="text" area="True" size="5x35" label="Query">
17 <sanitizer>
18 <valid initial="string.printable">
19 <remove value="&quot;"/>
20 </valid>
21 <mapping initial="none">
22 <add source="&quot;" target="&apos;"/>
23 </mapping>
24 </sanitizer>
25 </param>
26 </inputs>
27 <outputs>
28 <data format="txt" name="outfile" />
29 </outputs>
30 <configfiles>
31 <configfile name="script_file"><![CDATA[#!/usr/bin/env python
32 rcode="""
33 library('getopt');
34 library(affy)
35 require(synapseClient)
36
37 opt = getopt(c(
38 'user', 'u', 2, "character",
39 'pass', 'p', 2, "character",
40 'outfile', 'o', 2, "character"
41 ));
42
43 query <- "${query}";
44 cat(query)
45 if ( !is.null(opt\$user) && !is.null(opt\$pass)) {
46 synapseLogin(username=user, password=pass)
47 }
48
49 query.out <- synapseQuery(query);
50 write.table(query.out, quote=F, file=opt\$outfile, row.name=F, sep="\\t")
51
52 """
53 import tempfile
54 import os
55 import sys
56 import subprocess
57
58 h, path = tempfile.mkstemp()
59 os.write(h,rcode)
60 os.close(h)
61
62 proc = subprocess.Popen( ["Rscript", path] + sys.argv[1:], stderr=subprocess.PIPE, stdout=subprocess.PIPE )
63 (stdoutdata, stderrdata) = proc.communicate()
64 if proc.returncode:
65 sys.stderr.write(stderrdata)
66 sys.stdout.write(stdoutdata)
67 os.unlink(path)
68
69
70 ]]></configfile>
71 </configfiles>
72 </tool>