# HG changeset patch
# User iuc
# Date 1525357026 14400
# Node ID fe7be5634ab3d144d7652c4c9a4af2eee2958b9f
# Parent 98b40ecad32b2954c21e298266aec8f0b33ed251
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/query_tabular commit 6a362345c31764c28bb6328da1f0d81ef8f35d40
diff -r 98b40ecad32b -r fe7be5634ab3 macros.xml
--- a/macros.xml Mon Nov 06 23:20:17 2017 -0500
+++ b/macros.xml Thu May 03 10:17:06 2018 -0400
@@ -106,6 +106,13 @@
+
+
+ By default: tables are named: t1,t2,...,tn and columns in each table: c1,c2,...,cn
+
+ ^(?ims)\s*select\s+.*\s+from\s+.*$
+
+
diff -r 98b40ecad32b -r fe7be5634ab3 query_db.py
--- a/query_db.py Mon Nov 06 23:20:17 2017 -0500
+++ b/query_db.py Thu May 03 10:17:06 2018 -0400
@@ -59,9 +59,13 @@
def run_query(conn, query, outputFile, no_header=False, comment_char='#'):
cur = conn.cursor()
results = cur.execute(query)
- if not no_header:
- outputFile.write("%s%s\n" % (comment_char, '\t'.join(
- [str(col[0]) for col in cur.description])))
- for i, row in enumerate(results):
- outputFile.write("%s\n" % '\t'.join(
- [str(val) if val is not None else '' for val in row]))
+ if outputFile is not None:
+ if not no_header:
+ outputFile.write("%s%s\n" % (comment_char, '\t'.join(
+ [str(col[0]) for col in cur.description])))
+ for i, row in enumerate(results):
+ outputFile.write("%s\n" % '\t'.join(
+ [str(val) if val is not None else '' for val in row]))
+ else:
+ conn.commit()
+ return results
diff -r 98b40ecad32b -r fe7be5634ab3 query_tabular.py
--- a/query_tabular.py Mon Nov 06 23:20:17 2017 -0500
+++ b/query_tabular.py Thu May 03 10:17:06 2018 -0400
@@ -59,6 +59,9 @@
help='comment character to prefix column header line')
parser.add_option('-o', '--output', dest='output', default=None,
help='Output file for query results')
+ parser.add_option('-d', '--debug', dest='debug', default=False,
+ action='store_true',
+ help='Output info to stderr')
(options, args) = parser.parse_args()
# determine output destination
@@ -109,9 +112,35 @@
try:
with open(options.jsonfile) as fh:
tdef = json.load(fh)
+ if options.debug:
+ print('JSON: %s' % tdef, file=sys.stderr)
if 'tables' in tdef:
for ti, table in enumerate(tdef['tables']):
_create_table(ti, table)
+ if 'sql_stmts' in tdef:
+ for si, stmt in enumerate(tdef['sql_stmts']):
+ rowcount = run_query(get_connection(options.sqlitedb), stmt, None)
+ if options.debug:
+ print('\nDB modification: %s \nrowcount: %s' %
+ (stmt, rowcount), file=sys.stderr)
+ if 'queries' in tdef:
+ for qi, qstmt in enumerate(tdef['queries']):
+ if 'header' in qstmt:
+ no_header = False
+ comment_char = qstmt['header']
+ else:
+ no_header = True
+ comment_char = None
+ with open(qstmt['result_file'], 'w') as fh:
+ query = qstmt['query']
+ rowcount = run_query(get_connection(options.sqlitedb),
+ query,
+ fh,
+ no_header=no_header,
+ comment_char=comment_char)
+ if options.debug:
+ print('\nSQL: %s \nrowcount: %s' %
+ (query, rowcount), file=sys.stderr)
except Exception as e:
exit('Error: %s' % (e))
@@ -131,9 +160,13 @@
exit('Error: %s' % (e))
else:
try:
- run_query(get_connection(options.sqlitedb), query, outputFile,
- no_header=options.no_header,
- comment_char=options.comment_char)
+ rowcount = run_query(get_connection(options.sqlitedb),
+ query, outputFile,
+ no_header=options.no_header,
+ comment_char=options.comment_char)
+ if options.debug:
+ print('\nSQL: %s \nrowcount: %s' %
+ (query, rowcount), file=sys.stderr)
except Exception as e:
exit('Error: %s' % (e))
diff -r 98b40ecad32b -r fe7be5634ab3 test-data/psm_dbmod_output.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/psm_dbmod_output.tsv Thu May 03 10:17:06 2018 -0400
@@ -0,0 +1,5 @@
+#scan m/z Precursor m/z Error Sequence Protein(s) confidence
+1 523.272583 -4.42404529799 PYANQPTVR NP_116558 99.999
+3 652.843567 4.02947892238 SSWAGLQFPVGR NP_066544_R21W 99.999
+4 788.87384 1.27277118312 AQACNLDQSGTNVAK NP_112092_rs7285167:R182C 99.999
+7 908.008545 0.740229025429 DMTVPVLVSKPPVFTGK NP_001909_rs72973763:I239V,rs12021720:S384G 94.7368421053
diff -r 98b40ecad32b -r fe7be5634ab3 test-data/psm_dbmod_output1.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/psm_dbmod_output1.tsv Thu May 03 10:17:06 2018 -0400
@@ -0,0 +1,6 @@
+scan Sequence Protein(s) Position m/z Precursor m/z Error confidence
+1 PYANQPTVR NP_116558 2 523.272583 -4.42404529799 99.999
+3 SSWAGLQFPVGR NP_066544_R21W 19 652.843567 4.02947892238 99.999
+4 AQACNLDQSGTNVAK NP_112092_rs7285167:R182C 179 788.87384 1.27277118312 99.999
+6 LQLLPESFICK NP_001028196, NP_001244919, NP_036311 198; 163; 277 674.370911 0.341203679555 99.3865030675
+8 FGVSSESKPEEVK NP_001265138, NP_001265138_rs2274136:A858T,F879L, NP_001265139, NP_001265139_rs2274136:A785T,F806L, NP_005115, NP_005115_rs2274136:A827T,F848L 992; 992; 919; 919; 961; 961 711.858643 -0.766605567436 99.999