Mercurial > repos > prog > lcmsmatching
comparison 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 |
comparison
equal
deleted
inserted
replaced
4:b34c14151f25 | 5:fb9c0409d85c |
---|---|
1 #!/usr/bin/env python | |
2 # vi: fdm=marker | |
3 | |
4 import csv | |
5 import re | |
6 import argparse | |
7 | |
8 # Get MS mode values {{{1 | |
9 ################################################################ | |
10 | |
11 def get_ms_mode_value(file, col, preferred): | |
12 | |
13 modes = [] | |
14 cols = [] | |
15 preferred = preferred.split(',') | |
16 | |
17 with open(file if isinstance(file, str) else file.get_file_name(), 'r') as f: | |
18 | |
19 # Read file header | |
20 reader = csv.reader(f, delimiter = "\t", quotechar='"') | |
21 header = reader.next() | |
22 try: | |
23 index = header.index(col) | |
24 for row in reader: | |
25 v = row[index] | |
26 if v not in modes: | |
27 modes.append(v) | |
28 | |
29 # Find default value | |
30 default = 0 | |
31 for p in preferred: | |
32 for i, m in enumerate(modes): | |
33 if m == p: | |
34 default = i | |
35 break | |
36 if default != 0: | |
37 break | |
38 | |
39 # Build list of cols | |
40 for i, c in enumerate(modes): | |
41 cols.append( (c, c, i == default) ) | |
42 except: | |
43 pass | |
44 | |
45 return cols | |
46 | |
47 # Main {{{1 | |
48 ################################################################ | |
49 | |
50 if __name__ == '__main__': | |
51 | |
52 # Parse command line arguments | |
53 parser = argparse.ArgumentParser(description='Script for getting column names in a csv file.') | |
54 parser.add_argument('-f', help = 'CSV File (separator must be TAB)', dest = 'file', required = True) | |
55 parser.add_argument('-c', help = 'MS mode column name.', dest = 'col', required = True) | |
56 parser.add_argument('-p', help = 'List (comma separated values) of preferred column names for default one.', dest = 'preferred', required = True) | |
57 args = parser.parse_args() | |
58 args_dict = vars(args) | |
59 | |
60 print(get_ms_mode_value(**args_dict)) |