##################################
#                                #
# Last modified 5/6/2009         # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string

try:
	import psyco
	psyco.full()
except:
	pass

def run():

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

    inputfilename = sys.argv[1]
    ERANGEfilename = sys.argv[2]
    outputfilename = sys.argv[3]

    outfile = open(outputfilename, 'w')

    listoflines = open(inputfilename)
    lineslist = listoflines.readlines()
    listofsites=[]
    for line in lineslist:
        fields=line.split('\n')[0].split('\t')
        listofsites.append(fields[0]+'\t'+fields[1]+'\t'+fields[2])
        
    listoflines = open(ERANGEfilename)
    lineslist = listoflines.readlines()
    for line in lineslist:
        if line[0]=='#':
            continue
        linefields = line.split('\n')[0].split('\t')
#        print linefields
        for site in listofsites:
            sitefields = site.split('\t')
#            if string.count(site,line.split('\n')[0])==1:    
            if linefields[1]==sitefields[0] and linefields[2]==sitefields[1]:    
                outfile.write(line)
                continue

    outfile.close()

run()

