##################################
#                                #
# Last modified 2016/11/05       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import math
from sets import Set

def run():

    if len(sys.argv) < 4:
        print 'usage: python %s  input fieldID maxValue outfilename [-int]' % sys.argv[0]
        sys.exit(1)

    input = sys.argv[1]
    fieldID = int(sys.argv[2])
    maxValue = float(sys.argv[3])
    outfilename = sys.argv[4]

    doInt = False
    if '-int' in sys.argv:
        doInt = True

    outfile = open(outfilename, 'w')

    lineslist  = open(input)
    for line in lineslist:
        if line.startswith('#'):
            outfile.write(line)
            continue
        fields = line.strip().split('\t')
        outline = ''
        for i in range(fieldID):
            outline = outline + fields[i] + '\t'
        F = min(float(fields[fieldID]),maxValue) 
        if doInt:
            F = int(F)
        outline = outline + str(F) + '\t'
        for i in range(fieldID+1,len(fields)):
            outline = outline + fields[i] + '\t'
        outfile.write(outline.strip() + '\n')
            
    outfile.close()
        
run()

