diff list-ms-mode-values.py @ 5:fb9c0409d85c draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit 608d9e59a0d2dcf85a037968ddb2c61137fb9bce
author prog
date Wed, 19 Apr 2017 10:00:05 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/list-ms-mode-values.py	Wed Apr 19 10:00:05 2017 -0400
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+# vi: fdm=marker
+
+import csv
+import re
+import argparse
+
+# Get MS mode values {{{1
+################################################################
+
+def get_ms_mode_value(file, col, preferred):
+
+	modes = []
+	cols = []
+	preferred = preferred.split(',')
+
+	with open(file if isinstance(file, str) else file.get_file_name(), 'r') as f:
+
+		# Read file header
+		reader = csv.reader(f, delimiter = "\t", quotechar='"')
+		header = reader.next()
+		try:
+			index = header.index(col)
+			for row in reader:
+				v = row[index]
+				if v not in modes:
+					modes.append(v)
+
+			# Find default value
+			default = 0
+			for p in preferred:
+				for i, m in enumerate(modes):
+					if m == p:
+						default = i
+						break
+				if default != 0:
+					break
+
+			# Build list of cols
+			for i, c in enumerate(modes):
+				cols.append( (c, c, i == default) )
+		except:
+			pass
+
+	return cols
+
+# Main {{{1
+################################################################
+
+if __name__ == '__main__':
+    
+    # Parse command line arguments
+    parser = argparse.ArgumentParser(description='Script for getting column names in a csv file.')
+    parser.add_argument('-f', help = 'CSV File (separator must be TAB)',       dest = 'file',    required = True)
+    parser.add_argument('-c', help = 'MS mode column name.',        dest = 'col',     required = True)
+    parser.add_argument('-p', help = 'List (comma separated values) of preferred column names for default one.',        dest = 'preferred',     required = True)
+    args = parser.parse_args()
+    args_dict = vars(args)
+    
+    print(get_ms_mode_value(**args_dict))