Mercurial > repos > computationaltranscriptomics > vgx_converter
view vgx_converter.py @ 6:eb471a967693 draft
Uploaded
author | computationaltranscriptomics |
---|---|
date | Tue, 23 Feb 2016 09:18:55 -0500 |
parents | fb26ae916886 |
children |
line wrap: on
line source
#!/usr/bin/python import sys # import csv import json import shlex def __main__(): arg_names = ['command', "network", "delimiter", "attributes", "output"] args = dict(zip(arg_names, sys.argv)) print args idc = 0 # counter for the ids ids = {} # dictionary with id and name correlation keys = [] nodes = [] links = [] delim = {} delim['tab'] = '\t' delim['space'] = ' ' ################################################# data = {} with open(sys.argv[1], 'r') as f: reader = csv.reader(f, delimiter=delim[sys.argv[2]]) for row in reader: # iterate through each line p1 = shlex.split(row[0])[0] p2 = shlex.split(row[2])[0] if p1 not in ids: ids[p1] = idc idc = idc + 1 nodes.append({'id': ids[p1], 'name': p1 }) if p2 not in ids: ids[p2] = idc idc = idc + 1 nodes.append({'id': ids[p2], 'name': p2 }) links.append({'source': ids[p1], 'target': ids[p2]}) f.close() data = {'nodes': nodes, 'links': links} if args['attributes'] != 'None': # None for Galaxy data['some'] = 'not in here' # process attributes list with open(sys.argv[3]) as f: reader = csv.reader(f, delimiter='\t') ids_keys = ids.keys() for row in reader: propscnt = 0 if row[0] in ids_keys: pos = ids[row[0]] for props in range(len(row)-1): nodes[pos]['property'+str(propscnt)] = row[props+1] propscnt = propscnt +1 f.close() # write json data back to spec ified output file with open(sys.argv[4], 'w') as out: json.dump(data, out) out.close() if __name__ == "__main__": __main__()