Mercurial > repos > computationaltranscriptomics > vgx_converter
view vgx_converter.py @ 13:75763eea6d2b draft
Uploaded
author | computationaltranscriptomics |
---|---|
date | Wed, 01 Jun 2016 10:24:00 -0400 |
parents | 26655854fac5 |
children | 0726953d86f3 |
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': str(ids[p1]), 'label': p1 }) if p2 not in ids: ids[p2] = idc idc = idc + 1 nodes.append({'id': str(ids[p2]), 'label': p2 }) links.append({'source': ids[p1], 'target': ids[p2]}) f.close() data = { 'graph': {'nodes': nodes, 'edges': 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 metadata = {} for props in range(len(row)-1): metadata['property'+str(propscnt)] = row[props+1] propscnt = propscnt +1 print metadata nodes[pos]['metadata'] = metadata 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__()