import sys
import string

def run():

    if len(sys.argv) < 2:
        print 'usage: %s python <gencode gtf> <outfile prefix>' % sys.argv[0]
        sys.exit(1)

    gtf = sys.argv[1]
    outfilePrefix = sys.argv[2]

    linelist = open(gtf)
    BioTypeDict={}
    i=0
    for line in linelist:
        i+=1
        if i % 100000 == 0:
            print i, 'lines processed'
        fields=line.strip().split('\t')
        BioType=fields[8].split('transcript_type "')[1].split('"')[0]
        if BioTypeDict.has_key(BioType):
            BioTypeDict[BioType].append(line)
        else:
            BioTypeDict[BioType]=[]
            BioTypeDict[BioType].append(line)
    for BioType in BioTypeDict.keys():
        print BioType
        outfilename=outfilePrefix+'.'+BioType+'.gtf'
        outfile=open(outfilename,'w')
        for line in BioTypeDict[BioType]:
            outfile.write(line)
        outfile.close()
	
run()
