##################################
#                                #
# Last modified 7/12/2009         # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
from cistematic.core.geneinfo import geneinfoDB
from cistematic.genomes import Genome

def run():

    if len(sys.argv) < 6:
        print 'usage: python %s  inputfilename outpurfilename NFRminlength NFRmaxlength NucleosomeMinLength NucleosomeMaxLength' % sys.argv[0]
        sys.exit(1)

    cachePages = 2000000
    
    inputfilename = sys.argv[1]
    outfilename = sys.argv[2]
    NFRminlength = int(sys.argv[3])
    NFRmaxlength = int(sys.argv[4])
    NucleosomeMinlength = int(sys.argv[5])
    NucleosomeMaxlength = int(sys.argv[6])

    outfile = open(outfilename, 'w')
    
    inputdatafile = open(inputfilename)
    inputdatalist = inputdatafile.readlines()
    inputdatalist.remove(inputdatalist[0])
    candidateend=0
    candidatestart=0
    i=0
    for line in inputdatalist:
        fields=line.strip().split('\t')
        start = int(fields[1])
        end = int(fields[2])
        
        if end-start < NucleosomeMinlength or end-start > NucleosomeMaxlength:
            continue
        else:
            if start-candidateend > NFRminlength and start-candidateend < NFRmaxlength:
                i+=1
                outline = fields[0]+'\t'+str(candidateend)+'\t'+str(start)+'\t'+NFRcandidate+str(i)+'\n'
                outfile.write(outline)
            else:
                candidateend=end
                candidatestart=start
   
run()
