diff quast_select.py @ 0:c36a89d3a351 tip

planemo upload
author jpayne
date Wed, 07 Feb 2018 16:37:42 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/quast_select.py	Wed Feb 07 16:37:42 2018 -0500
@@ -0,0 +1,27 @@
+from __future__ import print_function
+
+import csv
+from operator import lt, gt
+import sys
+
+def pick(rows, key, reverse=False):
+	sorted_rows = sorted(rows, key=lambda r:r[key], reverse=reverse)
+	return sorted_rows[0]['Assembly']
+
+def int_or_str(token):
+	try:
+		return int(token)
+	except ValueError:
+		return str(token)
+
+if __name__ == '__main__':
+	path, compared = sys.argv[1:]
+	#QUAST tables have sample info as columns, so we need to transpose the table
+	rows = list(zip(*csv.reader(open(path, "rU"), delimiter='\t', dialect='excel')))
+	hed = rows.pop(0)
+	dict_rows = [{h : int_or_str(r[i]) for i, h in enumerate(hed)} for r in rows]
+	if "#" in compared:
+		reverse = False #if it's a count, we want the fewest
+	else:
+		reverse = True #otherwise it's a length and we want the longest
+	print(pick(dict_rows, compared, reverse))
\ No newline at end of file