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)