##################################
#                                #
# Last modified 2018/09/13       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import random
from sets import Set

def run():

    if len(sys.argv) < 3:
        print 'usage: python %s inputfilename radius outprefix [-chrPrefix string]' % sys.argv[0]
        sys.exit(1)

    input = sys.argv[1]
    radius = int(sys.argv[2])
    outprefix = sys.argv[3]

    chrPrefix = 'chr'

    if '-chrPrefix' in sys.argv:
       chrPrefix = sys.argv[sys.argv.index('-chrPrefix') + 1]

    outfile1 = open(outprefix + '.positions', 'w')
    outfile2 = open(outprefix + '.' + str(radius) + 'bp-radius.bed', 'w')

    print outfile1
    print outfile2

    linelist = open(input)
    i=0
    for line in linelist:
        if line.startswith('Position\tIP'):
            outline = '#chr\t' + line.strip()
            outfile1.write(outline + '\n')
            continue
        fields = line.strip().split('\t')
        chr = fields[0].split(':')[0]
        pos = int(fields[0].split(':')[1])
        left = max(pos - radius,0)
        right = pos + radius
        outline1 = chrPrefix + chr + '\t' + str(pos)
        outline2 = chrPrefix + chr + '\t' + str(left) + '\t' + str(right)
        for i in range(1,len(fields)):
            outline1 = outline1 + '\t' + fields[i]
            outline2 = outline2 + '\t' + fields[i]
        outfile1.write(outline1 + '\n')
        outfile2.write(outline2 + '\n')

    outfile1.close()
    outfile2.close()

run()
