comparison query_tabular.xml @ 4:afdbc7198353 draft

planemo upload for repository https://github.com/jj-umn/galaxytools/tree/master/query_tabular commit 9ae87502ea7c3da33ecc453872c4eb2f41ecea4a-dirty
author jjohnson
date Thu, 21 Jan 2016 08:09:36 -0500
parents ffa5e34a55c1
children 727620f718c2
comparison
equal deleted inserted replaced
2:ffa5e34a55c1 4:afdbc7198353
4 <requirements> 4 <requirements>
5 </requirements> 5 </requirements>
6 <stdio> 6 <stdio>
7 <exit_code range="1:" /> 7 <exit_code range="1:" />
8 </stdio> 8 </stdio>
9 <configfiles>
10 <configfile name="query_file">
11 $sqlquery
12 </configfile>
13 </configfiles>
14 <command interpreter="python"><![CDATA[ 9 <command interpreter="python"><![CDATA[
15 query_tabular.py 10 query_tabular.py
16 #if $save_db 11 #if $save_db
17 -s $sqlitedb 12 -s $sqlitedb
18 #else 13 #else
19 -s $workdb 14 -s $workdb
20 #end if 15 #end if
21 #for $i,$tbl in enumerate($tables): 16 -j $table_json
22 #if $tbl.table_name 17 #*
23 #set $tname = $tbl.table_name 18 ## #for $i,$tbl in enumerate($tables):
24 #else 19 ## #if $tbl.table_name
25 #set $tname = 't' + str($i + 1) 20 ## #set $tname = $tbl.table_name
26 #end if 21 ## #else
27 #if $tbl.col_names: 22 ## #set $tname = 't' + str($i + 1)
28 #set $col_names = ':' + str($tbl.col_names) 23 ## #end if
29 #else 24 ## #if $tbl.col_names:
30 #set $col_names = '' 25 ## #set $col_names = ':' + str($tbl.col_names)
31 #end if 26 ## #else
32 -t ${tbl.table}=${tname}${$col_names} 27 ## #set $col_names = ''
33 #end for 28 ## #end if
29 ## -t ${tbl.table}=${tname}${$col_names}
30 ## #end for
31 *#
34 #if $sqlquery: 32 #if $sqlquery:
35 -Q "$query_file" 33 -Q "$query_file"
36 $no_header 34 $no_header
37 -o $output 35 -o $output
38 #end if 36 #end if
39 ]]></command> 37 ]]></command>
38 <configfiles>
39 <configfile name="query_file">
40 $sqlquery
41 </configfile>
42 <configfile name="table_json">
43 #import json
44 #set $jtbldef = dict()
45 #set $jtbls = []
46 #set $jtbldef['tables'] = $jtbls
47 #for $i,$tbl in enumerate($tables):
48 #set $jtbl = dict()
49 #set $jtbl['file_path'] = str($tbl.table)
50 #if $tbl.table_name
51 #set $tname = str($tbl.table_name)
52 #else
53 #set $tname = 't' + str($i + 1)
54 #end if
55 #set $jtbl['table_name'] = $tname
56 #if $tbl.col_names:
57 #set $col_names = str($tbl.col_names)
58 #else
59 #set $col_names = ''
60 #end if
61 #set $jtbl['column_names'] = $col_names
62 #if str($tbl.skip_lines) != '':
63 #set $jtbl['comment_lines'] = $tbl.skip_lines
64 #elif $tbl.table.metadata.comment_lines > 0:
65 #set $jtbl['comment_lines'] = int($tbl.table.metadata.comment_lines)
66 #end if
67 #set $jtbls += [$jtbl]
68 #end for
69 #echo $json.dumps($jtbldef)
70 </configfile>
71 </configfiles>
40 <inputs> 72 <inputs>
41 <param name="workdb" type="hidden" value="workdb.sqlite" label=""/> 73 <param name="workdb" type="hidden" value="workdb.sqlite" label=""/>
42 <repeat name="tables" title="Add tables" min="1"> 74 <repeat name="tables" title="Add tables" min="1">
43 <param name="table" type="data" format="tabular" label="Dataset"/> 75 <param name="table" type="data" format="tabular" label="Dataset"/>
44 <param name="table_name" type="text" value="" optional="true" label="Table name"> 76 <param name="table_name" type="text" value="" optional="true" label="Table name">
50 --> 82 -->
51 <param name="col_names" type="text" value="" optional="true" label="Column names"> 83 <param name="col_names" type="text" value="" optional="true" label="Column names">
52 <help>By default, table columns will be named: c1,c2,c3,...,cn</help> 84 <help>By default, table columns will be named: c1,c2,c3,...,cn</help>
53 <validator type="regex" message="A List of separated by commas: Column names should start with a letter and may contain additional letters, digits, and underscores">^([A-Za-z]\w*)?(,([A-Za-z]\w*)?)*$</validator> 85 <validator type="regex" message="A List of separated by commas: Column names should start with a letter and may contain additional letters, digits, and underscores">^([A-Za-z]\w*)?(,([A-Za-z]\w*)?)*$</validator>
54 </param> 86 </param>
87 <param name="skip_lines" type="integer" value="" min="0" optional="true" label="Skip lines" help="Leave blank to use the datatype comment lines metadata" />
55 </repeat> 88 </repeat>
56 <param name="sqlquery" type="text" area="true" size="10x80" value="" optional="true" label="SQL Query"> 89 <param name="sqlquery" type="text" area="true" size="10x80" value="" optional="true" label="SQL Query">
57 <help>By default, tables will be named: t1,t2,...,tn</help> 90 <help>By default, tables will be named: t1,t2,...,tn</help>
58 <sanitizer sanitize="False"/> 91 <sanitizer sanitize="False"/>
59 <validator type="regex" message="">^(?i)\s*select\s+.*\s+from\s+.*$</validator> 92 <validator type="regex" message="">^(?i)\s*select\s+.*\s+from\s+.*$</validator>
61 <param name="no_header" type="boolean" truevalue="-n" falsevalue="" checked="False" label="Omit column headers"/> 94 <param name="no_header" type="boolean" truevalue="-n" falsevalue="" checked="False" label="Omit column headers"/>
62 95
63 <param name="save_db" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Save the sqlite database"/> 96 <param name="save_db" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Save the sqlite database"/>
64 </inputs> 97 </inputs>
65 <outputs> 98 <outputs>
66 <data format="sqlite" name="sqlitedb" label="sqlite"> 99 <data format="sqlite" name="sqlitedb" label="sqlite db of ${on_string}">
67 <filter>save_db or not (sqlquery and len(sqlquery) > 0)</filter> 100 <filter>save_db or not (sqlquery and len(sqlquery) > 0)</filter>
68 </data> 101 </data>
69 <data format="tabular" name="output" label="query results"> 102 <data format="tabular" name="output" label="query results on ${on_string}">
70 <filter>sqlquery and len(sqlquery) > 0</filter> 103 <filter>sqlquery and len(sqlquery) > 0</filter>
71 </data> 104 </data>
72 </outputs> 105 </outputs>
73 <tests> 106 <tests>
74 107
82 <param name="table" ftype="tabular" value="sales.tsv"/> 115 <param name="table" ftype="tabular" value="sales.tsv"/>
83 <param name="table_name" value="sales"/> 116 <param name="table_name" value="sales"/>
84 <param name="col_names" value="CustomerID,Date,SaleAmount"/> 117 <param name="col_names" value="CustomerID,Date,SaleAmount"/>
85 </repeat> 118 </repeat>
86 <param name="sqlquery" value="SELECT FirstName,LastName,sum(SaleAmount) as &quot;TotalSales&quot; FROM customers join sales on customers.CustomerID = sales.CustomerID GROUP BY customers.CustomerID ORDER BY TotalSales DESC"/> 119 <param name="sqlquery" value="SELECT FirstName,LastName,sum(SaleAmount) as &quot;TotalSales&quot; FROM customers join sales on customers.CustomerID = sales.CustomerID GROUP BY customers.CustomerID ORDER BY TotalSales DESC"/>
87 <output name="output" file="sales_results.tsv"/> 120 <output name="output" file="sales_results.tsv"/>
88 </test> 121 </test>
89 122
90 <test> 123 <test>
91 <repeat name="tables"> 124 <repeat name="tables">
92 <param name="table" ftype="tabular" value="customers.tsv"/> 125 <param name="table" ftype="tabular" value="customers.tsv"/>
94 </repeat> 127 </repeat>
95 <repeat name="tables"> 128 <repeat name="tables">
96 <param name="table" ftype="tabular" value="sales.tsv"/> 129 <param name="table" ftype="tabular" value="sales.tsv"/>
97 </repeat> 130 </repeat>
98 <param name="sqlquery" value="SELECT FirstName,LastName,sum(t2.c3) as &quot;TotalSales&quot; FROM t1 join t2 on t1.c1 = t2.c1 GROUP BY t1.c1 ORDER BY TotalSales DESC;"/> 131 <param name="sqlquery" value="SELECT FirstName,LastName,sum(t2.c3) as &quot;TotalSales&quot; FROM t1 join t2 on t1.c1 = t2.c1 GROUP BY t1.c1 ORDER BY TotalSales DESC;"/>
99 <output name="output" file="sales_results.tsv"/> 132 <output name="output" file="sales_results.tsv"/>
133 </test>
134
135 <test>
136 <repeat name="tables">
137 <param name="table" ftype="tabular" value="customers.tsv"/>
138 <param name="col_names" value=",FirstName,LastName,,BirthDate,"/>
139 </repeat>
140 <param name="sqlquery" value="select FirstName,LastName,re_sub('^\d{2}(\d{2})-(\d\d)-(\d\d)','\3/\2/\1',BirthDate) as &quot;DOB&quot; from t1 WHERE re_search('[hp]er',c4)"/>
141 <output name="output" file="regex_results.tsv"/>
100 </test> 142 </test>
101 143
102 <test> 144 <test>
103 <repeat name="tables"> 145 <repeat name="tables">
104 <param name="table" ftype="tabular" value="IEDB.tsv"/> 146 <param name="table" ftype="tabular" value="IEDB.tsv"/>
109 <param name="table" ftype="tabular" value="netMHC_summary.tsv"/> 151 <param name="table" ftype="tabular" value="netMHC_summary.tsv"/>
110 <param name="table_name" value="mhc_summary"/> 152 <param name="table_name" value="mhc_summary"/>
111 <param name="col_names" value="pos,peptide,logscore,affinity,Bind_Level,Protein,Allele"/> 153 <param name="col_names" value="pos,peptide,logscore,affinity,Bind_Level,Protein,Allele"/>
112 </repeat> 154 </repeat>
113 <param name="sqlquery" value="select iedb.ID,iedb.peptide,iedb.start,iedb.end,iedb.percentile_rank,mhc_summary.logscore,mhc_summary.affinity,mhc_summary.Bind_Level from iedb left outer join mhc_summary on iedb.peptide = mhc_summary.peptide order by affinity,Bind_Level"/> 155 <param name="sqlquery" value="select iedb.ID,iedb.peptide,iedb.start,iedb.end,iedb.percentile_rank,mhc_summary.logscore,mhc_summary.affinity,mhc_summary.Bind_Level from iedb left outer join mhc_summary on iedb.peptide = mhc_summary.peptide order by affinity,Bind_Level"/>
114 <output name="output" file="query_results.tsv"/> 156 <output name="output" file="query_results.tsv"/>
115 </test> 157 </test>
116 158
117 </tests> 159 </tests>
118 <help><![CDATA[ 160 <help><![CDATA[
119 ============= 161 =============
205 Column names: ,FirstName,LastName,,BirthDate 247 Column names: ,FirstName,LastName,,BirthDate
206 248
207 Results in the following data base table 249 Results in the following data base table
208 250
209 =========== ========== ========== ===================== ========== ============ 251 =========== ========== ========== ===================== ========== ============
210 #c1 FirstName LastName c4 BithDate c6 252 #c1 FirstName LastName c4 BirthDate c6
211 =========== ========== ========== ===================== ========== ============ 253 =========== ========== ========== ===================== ========== ============
212 1 John Smith John.Smith@yahoo.com 1968-02-04 626 222-2222 254 1 John Smith John.Smith@yahoo.com 1968-02-04 626 222-2222
213 2 Steven Goldfish goldfish@fishhere.net 1974-04-04 323 455-4545 255 2 Steven Goldfish goldfish@fishhere.net 1974-04-04 323 455-4545
214 3 Paula Brown pb@herowndomain.org 1978-05-24 416 323-3232 256 3 Paula Brown pb@herowndomain.org 1978-05-24 416 323-3232
215 4 James Smith jim@supergig.co.uk 1980-10-20 416 323-8888 257 4 James Smith jim@supergig.co.uk 1980-10-20 416 323-8888
216 =========== ========== ========== ===================== ========== ============ 258 =========== ========== ========== ===================== ========== ============
217 259
260 Regular_expression_ functions are included for:
261
262 ::
263
264 matching: re_match('pattern',column)
265
266 SELECT t1.FirstName, t1.LastName
267 FROM t1
268 WHERE re_match('^.*\.(net|org)$',c4)
269
270 Results:
271
272 =========== ==========
273 #FirstName LastName
274 =========== ==========
275 Steven Goldfish
276 Paula Brown
277 =========== ==========
278
279
280 ::
281
282 searching: re_search('pattern',column)
283 substituting: re_sub('pattern','replacement,column)
284
285 SELECT t1.FirstName, t1.LastName, re_sub('^\d{2}(\d{2})-(\d\d)-(\d\d)','\3/\2/\1',BirthDate) as "DOB"
286 FROM t1
287 WHERE re_search('[hp]er',c4)
288
289 Results:
290
291 =========== ========== ==========
292 #FirstName LastName DOB
293 =========== ========== ==========
294 Steven Goldfish 04/04/74
295 Paula Brown 24/05/78
296 James Smith 20/10/80
297 =========== ========== ==========
298
299 .. _Regular_expression: https://docs.python.org/release/2.7/library/re.html
218 .. _SQLite: http://www.sqlite.org/index.html 300 .. _SQLite: http://www.sqlite.org/index.html
219 301
220 ]]></help> 302 ]]></help>
221 </tool> 303 </tool>