import gzip
import math
import sys
import marshal
import cPickle as pickle
import argparse
import csv
    
def main(args):
    #open cg index
    cg_index = args.cgindex[0]
    outname = args.out[0]
    try: index = open(cg_index,'r+b')
    except (TypeError,IOError),err: 
        print 'Unable to open',cg_index 
        return
    try: outfile = open(outname,'w+b')
    except (IOError),err:
        print 'Unable to open',outname
        return
    cg = csv.reader(index,delimiter="\t")
    cgdict = {}
    for line in cg:
        try:
            cgdict[line[0]][int(line[1])] = 0.0
        except(KeyError):
            cgdict[line[0]] = { int(line[1]) : 0.0 }


    pickle.dump( cgdict, outfile )


    print "Finished printing cgindex pickle file named ",outname


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description = 'CG index to pickle file')
    parser.add_argument('--out',dest='out',nargs=1,type=str,help='Name for output pickle file.')
    parser.add_argument('--cgindex', dest='cgindex',nargs=1,type=str,help='Input CG index to be pickled.')
    args = parser.parse_args()
    main(args)

