##################################
#                                #
# Last modified 05/23/2011       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import random

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

def run():

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

    inputfilename = sys.argv[1]
    shift = int(sys.argv[2])
    outputfilename = sys.argv[3]

    outfile = open(outputfilename, 'w')

    listoflines = open(inputfilename)
    for line in listoflines:
        fields = line.strip().split('\t')
        strand = fields[1]
        start = int(fields[3])
        if strand == '+':
            start = start + shift
        if strand == '-':
            start = start - shift
        outline = fields[0] + '\t' + fields[1] + '\t' + fields[2] + '\t' + str(start) + '\t' + fields[4] + '\t' + fields[5] + '\t' + fields[6] + '\n'
        outfile.write(outline)

    outfile.close()

run()

