##################################
#                                #
# Last modified 2017/05/25       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import os

def run():

    if len(sys.argv) < 5:
        print 'usage: python %s input XfieldID YfieldID stepsize outfilename' % sys.argv[0]
        sys.exit(1)

    input = sys.argv[1]
    XfieldID = int(sys.argv[2])
    YfieldID = int(sys.argv[3])
    step = int(sys.argv[4])

    linelist = open(input)
    DataList = []
    for line in linelist:
        if line.startswith('#'):
            continue
        fields = line.strip().split('\t')
        try:
            X = float(fields[XfieldID])
            Y = float(fields[YfieldID])
        except:
            print 'skipping line'
            print line.strip()
            continue
        DataList.append((X,Y))

    outfile = open(sys.argv[5],'w')

    NumElements = len(DataList)

    for i in range(0,NumElements,step):
        X = DataList[i][0]
        Ys = []
        for j in range (i,min(i+step,NumElements)):
            Ys.append(DataList[j][1])
        Y = sum(Ys)/step
        outline = str(X) + '\t' + str(Y)
        outfile.write(outline + '\n')

    outfile.close()

run()

