Mercurial > repos > prog > lcmsmatching
view 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 source
#!/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))