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