##################################
#                                #
# Last modified 10/11/2011       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import math
from sets import Set

def run():

    if len(sys.argv) < 3:
        print 'usage: python %s gtf <class_code1,class_code2,...class_code1N> outfilename' % sys.argv[0]
        sys.exit(1)

    gtf = sys.argv[1]
    class_codes = sys.argv[2].split(',')
    outfilename = sys.argv[3]

    class_code_dict = {}
    for cc in class_codes:
        class_code_dict[cc] = ''

    outfile = open(outfilename, 'w')

    lineslist  = open(gtf)
    for line in lineslist:
        if line[0]=='#':
            outfile.write(line)
            continue
        fields=line.strip().split('\t')
        class_code=fields[8].split('class_code "')[1].split('";')[0]
        if class_code_dict.has_key(class_code):
            outfile.write(line)

    outfile.close()
        
run()

