import os, operator, sys

def make_dict(fname):
    f = open(fname)
    gene_dict = {}
    target_dict = {}
    tf_dict = {}
    edge_dict = {}
    for line in f:
        line = line.strip()
        lst = line.split('\t')
        target = lst[0].split()[0].upper()
        tf     = lst[1].split()[0].upper()
        if not tf in tf_dict:
            tf_dict[tf] = 1
        else:
            tf_dict[tf] += 1
            
        if not target in target_dict:
            target_dict[target] = 1
        else:
            target_dict[target] += 1

        if not tf in gene_dict:
            gene_dict[tf] = 1
        else:
            gene_dict[tf] += 1
        if not target in gene_dict:
            gene_dict[target] = 1
        else:
            gene_dict[target] += 1
        k = tf + '.' + target
        if not k in edge_dict:
            edge_dict[k] = 1
        else:
            edge_dict[k] += 1
            
    f.close()
    return tf_dict, target_dict, gene_dict, edge_dict


# main
edge_fname = '/home/hui/network/v03/Data/history/edges/edges.txt'
tf_dict, target_dict, gene_dict, edge_dict = make_dict(edge_fname)
print('Number of TFs: %d' % len(tf_dict))
print('Number of targets: %d' % len(target_dict))
print('Number of genes: %d' % len(gene_dict))
print('Number of edges: %d' % len(edge_dict))