##################################
#                                #
# Last modified 02/25/2012       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
from sets import Set

def run():

    if len(sys.argv) < 3:
        print 'usage: python %s mrna.fa refKnown outfilename' % sys.argv[0]
        sys.exit(1)

    mrna = sys.argv[1]
    refKnown = sys.argv[2]
    outfilename = sys.argv[3]

    IDtoNameDict={}
    listoflines = open(refKnown)
    i=0
    for line in listoflines:
        if line.startswith('#'):
            continue
        fields=line.strip().split('\t')
        ID=fields[1]
        name=fields[0]
        IDtoNameDict[ID]=name
    
    outfile = open(outfilename, 'w')

    listoflines = open(mrna)
    notfound=0
    total=0
    for line in listoflines:
        if line.startswith('>'):
            total+=1
            ID = line.strip().split('>')[1].split(' ')[0].split('\t')[0]
            try:
                outline = '>' + IDtoNameDict[ID] + ':' + ID
            except:
                notfound+=1
                outline = '>' + ID
            outfile.write(outline+'\n')
        else:
            outfile.write(line)

    print 'not found in refFlat:', notfound , 'out of ', total

    outfile.close()

run()

