##################################
#                                #
# Last modified 07/21/2011       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
from sets import Set

def run():

    if len(sys.argv) < 3:
        print 'usage: python %s ASE_file columnID outfile' % sys.argv[0]
        sys.exit(1)

    ASE=sys.argv[1]
    fieldID=int(sys.argv[2])
    outfilename = sys.argv[3]

    chrDict={}

    outfile = open(outfilename, 'w')

    linelist=open(ASE)
    for line in linelist:
        fields=line.strip().split('\t')
        if line.startswith('#gene'):
            continue
        chr=fields[1]
        if chrDict.has_key(chr):
            pass
        else:
            chrDict[chr]=[]
        chrDict[chr].append(fields[fieldID])

    keys=chrDict.keys()
    keys.sort()

    maxEntries=0
    outline = ''
    for chr in keys:
        outline=outline+chr+'\t'
        if len(chrDict[chr]) > maxEntries:
            maxEntries=len(chrDict[chr])
    outfile.write(outline.strip() +'\n')

    for i in range(maxEntries):
        outline=''
        for chr in keys:
            if len(chrDict[chr]) < maxEntries and i >= len(chrDict[chr]):
                outline=outline+'\t'
            else:
                outline=outline+chrDict[chr][i]+'\t'
        outfile.write(outline.strip() +'\n')

    outfile.close()

run()