def findMaxLLR(caselist, poplist, regionmatrix):
    #print sum(caselist), sum(poplist)
    popsum = sum(poplist)
    llr = likelihoodratio.likelihoodratio(sum(caselist), popsum)
    maxLLR = -1
    maxllrlevel = -1
    maxllrcase = 0
    maxllrpop = 0
    for level in xrange(len(regionmatrix[1,:])):
        regid = regionmatrix[:,level]
        unique_regid = np.unique(regid)
        numreg = len(unique_regid)
        if numreg > 1: # and numreg < numUnit:
            regcasepop = np.zeros((numreg,3)) ## [[case, pop, count], ...]
            regid_dict = {}
            for i in xrange(numreg):
                regid_dict[unique_regid[i]] = i
            for i in xrange(len(regid)):
                regcasepop[regid_dict[regid[i]],0] += caselist[i]
                regcasepop[regid_dict[regid[i]],1] += poplist[i]
                regcasepop[regid_dict[regid[i]],2] += 1
            for item in regcasepop:
                if item[2] > 1 and item[1] < popsum * 0.5:
                #if item[1] < popsum * 0.5:
                    temp = llr.llr(item[0],item[1])
                    if temp > maxLLR:
                        maxLLR = temp
                        #/-----------debug
                        maxllrlevel = level
                        maxllrcase = item[0]
                        maxllrpop = item[1]
                        
    print 'maxllr_level', maxllrlevel, 'maxllr_case =', maxllrcase, 'maxllr_pop =', maxllrpop, 'maxllr =', maxLLR
    #debug---------------/
    return maxLLR
    pop = data[:,1]

    randomLLRcsv = filePath + 'LLR_buildonly/Random/maxllr.csv'
    r = readcsv.readcsv(randomLLRcsv)
    randomLLR = r.getData()
    randomLLR = randomLLR[:,0]
    randomCount = len(randomLLR) + 1
    
    repeatTime = len(data[0,:])-2
    #repeatTime = 100
    numUnit = len(pop)
    
    maxPvaluelist = []

    popsum = sum(pop)
    llr = likelihoodratio.likelihoodratio(sum(data[:,2]), popsum)

    printstep = 100

    for repeat in xrange(repeatTime):
        if repeat%printstep == 0:
            print repeat, str(datetime.now())
            
        case = data[:,2+repeat]
        #print case[0]
        regionCSV = filePath + 'LLR_buildonly/' + clustertype + '/LLR_EBS_' + str(repeat) + ".csv"
        r = readcsv.readcsv(regionCSV,'int')
        regiondata = r.getData()
        #temp = findMaxLLR(case, pop, regiondata[:,1:])
        #print temp
        #maxPvaluelist.append(temp)
    llr_weight = 1 # seems doesn't have impact on the results

    repeatTime = 100
    numUnit = 255
    sigma = []
    s = measureSigma.SSS_sigma(range(numUnit), hot_16)
    
    popsum = sum(pop)
    halfpop = popsum/2
    minPvaluelist = []
    for repeat in xrange(repeatTime):
        #repeat = 299
        maxLLR = -1
        scale = 1
        case = data[:,2+repeat]
        llr = likelihoodratio.likelihoodratio(sum(case), popsum)
        halfcase = sum(case)/2
        imagedata = case/pop
        #imagedata = smoothdata[:,repeat]
        indexList = range(len(imagedata))#imagedata[:,0].tolist()
        #intensityList = data_stretch(imagedata, 'min_max')#imagedata #imagedata[:,1].tolist()
        intensityList = data_stretch(imagedata)#imagedata #imagedata[:,1].tolist()
        intensityList = imagedata
        #plotshapefile(shpfile, np.array(intensityList)/255, 'Set3')
        
        scale_amg_weight = []
        if llr_weight > 0:
            cur_pixels_weight, cur_adjWeight, cur_prop = find_weight_for_pixels_llr(indexList, case, pop)    
            seeds_generation_llr(cur_pixels_weight, cur_adjWeight, cur_prop, np.ones(len(imagedata)))
        else:
            cur_pixels_weight = find_weight_for_pixels(indexList)