def RunGWAS(filename,k=5,eps=2.0): sz=450 [[y1,sFil1],[y2,sFil2]]=loadData(filename=filename,useRand=False,sz=sz); MU1=MU_STRAT(sFil1,k); MU2=MU_STRAT(sFil2,k); print "EXACT1!" MU1.calcMU(k,exact=True) print "Exact 2!" MU2.calcMU(k,exact=True); res=pt(y1,MU1,1,-1,algor="noise"); resL=pt(y1,MU1,20,-1,algor="noise"); print resL #print wt(y1,MU1,-1,snps=res); res2=pt(y2,MU2,1,-1,algor="noise"); print res; resT=res; print res2; resT=wt(y2,MU2,eps,snps=resL[5:7]); res2=wt(y1,MU1,eps,snps=res); res3=wt(y1,MU1,-1,snps=[]); res4=wt(y2,MU2,-1,snps=[]); n=len(y2); print len(y1); print n; val=[resT[0]*(n-k-1),resT[1]*(n-k-1)] n2=len(y1); print "In Val:" print val; print "In Orig" print res2[0]*(n2-k-1); n2=len(y1); print np.median(res3)*(n2-k-1) n2=len(y1); res3=sorted(res3,reverse=True)[:10]; res3=[(n2-k-1)*i for i in res3]; print res3 fil=open("saveRes.txt","w") for r in res4: fil.write(str(r)+"\n") fil.close(); res4=sorted(res4,reverse=True)[:20]; res3=[(n-k-1)*i for i in res4]; print res3 CIlst=CI(y2,MU2,.95,2.0,resL[5:6]); CIlst2=CI(y2,MU2,.95,2.0,resL[6:7]); CIlst=[[(n-k-1)*i for i in s] for s in CIlst] CIlst22=[[(n-k-1)*i for i in s] for s in CIlst2] print CIlst; print CIlst2;
def TestCase(cutoff=23,num=2,filename="../GWAS/NoFam_0.05",k=10,sz=450): [[y1,sFil1],[y2,sFil2]]=loadData(filename=filename,useRand=False,sz=sz); MU1=MU_STRAT(sFil1,k) MU2=MU_STRAT(sFil2,k) n=len(y2); n2=len(y1); print "Exact 1!" MU1.calcMU(k,exact=True); print "Exact 2!" MU2.calcMU(k,exact=True); print "Get top in set 1" top1=pt(y1,MU1,20,-1,algor="noise"); print "Get Scores" scores=wt(y1,MU1,-1,snps=top1); print "Get "+str(num)+" SNPs directly below "+str(cutoff); i=min([i for i in range(0,len(top1)) if scores[i]<cutoff/float(n2-k-1)]) print top1[i]; print float((n2-k-1)*scores[i]) #print i; #print scores[:10]; print ""; print top1[i+1]; print float((n2-k-1)*scores[i+1]) CIlst=CI(y2,MU2,.95,2.0,top1[i:i+2]); Clst=[[(n-k-1)*i for i in s] for s in CIlst] print Clst;
def plotTop(mret,eps,filename,savename=""): if len(savename)==0: savename="OutputDir/LMM_top_"+str(eps)+"_"+str(mret)+".txt" epsilons=[eps*i for i in range(1,11)]; print "load Data" [y,BED]=ld.getData(filename); print "calc MU!" MU=MU_LMM(BED,[1,-1.0]); sc=MU.prod(y); sc=[abs(s) for s in sc]; sc=sorted(sc,reverse=True); print "get True!"; tru=pt(y,MU,mret,-1,algor="noise"); neighs=[0.0 for i in range(1,11)]; score=[0.0 for i in range(1,11)]; noise=[0.0 for i in range(1,11)]; reps=20; for i in range(0,10): e=epsilons[i]; print e; for j in range(0,reps): print j; e1=e*mret/float(mret+1); MU=MU_LMM(BED,[10,e/float(mret+1)]); gs=pt(y,MU,mret,e1,algor="neighbor",reuse=True); neighs[i]=neighs[i]+inter(tru,gs)/float(reps); gs=pt(y,MU,mret,e1,algor="score"); score[i]=score[i]+inter(tru,gs)/float(reps); gs=pt(y,MU,mret,e1,algor="noise"); noise[i]=noise[i]+inter(tru,gs)/float(reps); fil=open(savename,"w"); fil.write("Testing Top SNPs with DP, "+filename); fil.write("\nEpsilon:") for i in range(0,10): fil.write(" "+str(epsilons[i])) fil.write("\nNoise:") for i in range(0,10): fil.write(" "+str(noise[i])) fil.write("\nScore:") for i in range(0,10): fil.write(" "+str(score[i])) fil.write("\nNeighbor:") for i in range(0,10): fil.write(" "+str(neighs[i])) fil.close();
def plotTop(mret, eps, filename, savename=""): if len(savename) == 0: savename = "OutputDir/LMM_top_" + str(eps) + "_" + str(mret) + ".txt" epsilons = [eps * i for i in range(1, 11)] print "load Data" [y, BED] = ld.getData(filename) print "calc MU!" MU = MU_LMM(BED, [1, -1.0]) sc = MU.prod(y) sc = [abs(s) for s in sc] sc = sorted(sc, reverse=True) print "get True!" tru = pt(y, MU, mret, -1, algor="noise") neighs = [0.0 for i in range(1, 11)] score = [0.0 for i in range(1, 11)] noise = [0.0 for i in range(1, 11)] reps = 20 for i in range(0, 10): e = epsilons[i] print e for j in range(0, reps): print j e1 = e * mret / float(mret + 1) MU = MU_LMM(BED, [10, e / float(mret + 1)]) gs = pt(y, MU, mret, e1, algor="neighbor", reuse=True) neighs[i] = neighs[i] + inter(tru, gs) / float(reps) gs = pt(y, MU, mret, e1, algor="score") score[i] = score[i] + inter(tru, gs) / float(reps) gs = pt(y, MU, mret, e1, algor="noise") noise[i] = noise[i] + inter(tru, gs) / float(reps) fil = open(savename, "w") fil.write("Testing Top SNPs with DP, " + filename) fil.write("\nEpsilon:") for i in range(0, 10): fil.write(" " + str(epsilons[i])) fil.write("\nNoise:") for i in range(0, 10): fil.write(" " + str(noise[i])) fil.write("\nScore:") for i in range(0, 10): fil.write(" " + str(score[i])) fil.write("\nNeighbor:") for i in range(0, 10): fil.write(" " + str(neighs[i])) fil.close()
def plotTop(mret,eps,filename,savename=""): if len(savename)==0: savename="OutputDir/res_top_"+str(eps)+"_"+str(mret)+".txt" epsilons=[eps*i for i in range(1,11)]; print "load Data" [y,BED]=ld.getData(filename); print "calc MU!" MU=MU_STRAT(BED,10); sc=MU.prod(y); sc=[abs(s) for s in sc]; sc=sorted(sc,reverse=True); print "get True!"; tru=pt(y,MU,mret,-1,algor="noise"); neighs=[0.0 for i in range(1,11)]; score=[0.0 for i in range(1,11)]; noise=[0.0 for i in range(1,11)]; reps=20; for i in range(0,10): e=epsilons[i]; print e; for j in range(0,reps): print j; gs=pt(y,MU,mret,e,algor="neighbor",reuse=True); neighs[i]=neighs[i]+inter(tru,gs)/float(reps); gs=pt(y,MU,mret,e,algor="score"); score[i]=score[i]+inter(tru,gs)/float(reps); gs=pt(y,MU,mret,e,algor="noise"); noise[i]=noise[i]+inter(tru,gs)/float(reps); fil=open(savename,"w"); fil.write("Testing Top SNPs with DP, "+filename); fil.write("\nEpsilon:") for i in range(0,10): fil.write(" "+str(epsilons[i])) fil.write("\nNoise:") for i in range(0,10): fil.write(" "+str(noise[i])) fil.write("\nScore:") for i in range(0,10): fil.write(" "+str(score[i])) fil.write("\nNeighbor:") for i in range(0,10): fil.write(" "+str(neighs[i])) fil.close();