--- /dev/null
+TPFDRplot <-
+function(DESeqP, EBZ, TrueDE, main, FDR=NULL){
+ Seq=seq(0.001,0.5,by=0.001)
+ DETPR=rep(0,length(Seq))
+ EBTPR=rep(0,length(Seq))
+ DEFDR=rep(0,length(Seq))
+ EBFDR=rep(0,length(Seq))
+ DETPNum=rep(0,length(Seq))
+ EBTPNum=rep(0,length(Seq))
+ DEFDNum=rep(0,length(Seq))
+ EBFDNum=rep(0,length(Seq))
+ for (i in 1:length(Seq)){
+ DESeqOnes=names(DESeqP)[DESeqP<=Seq[i]]
+ if (length(FDR)==0) EBOnes=names(EBZ)[EBZ>=crit.fun(1-EBZ, Seq[i])]
+ else if (FDR=="H") EBOnes=names(EBZ)[EBZ>=(1-Seq[i])]
+ else EBOnes=names(EBZ)[EBZ>=FDR[i]]
+
+ DETPNum[i]=sum(DESeqOnes%in%TrueDE)
+ EBTPNum[i]=sum(EBOnes%in%TrueDE)
+ DEFDNum[i]=sum(!DESeqOnes%in%TrueDE)
+ EBFDNum[i]=sum(!EBOnes%in%TrueDE)
+
+ DETPR[i]=DETPNum[i]/length(TrueDE)
+ EBTPR[i]=EBTPNum[i]/length(TrueDE)
+ DEFDR[i]=DEFDNum[i]/length(TrueDE)
+ EBFDR[i]=EBFDNum[i]/length(TrueDE)
+ }
+ plot(Seq,DETPR,ylim=c(0,1),xlim=c(0,.5),type="l",col="red", main=paste(main, "TPR"),xlab="controled FDR level", ylab="TPR",lwd=2)
+ lines(Seq,EBTPR,col="blue",lwd=2)
+ legend("bottomright",lwd=2, col=c("red","blue"), c("DESeq","EBSeq"))
+
+ plot(Seq,DEFDR,ylim=c(0,1),xlim=c(0,.5),type="l",col="red", main=paste(main, "FDR"),xlab="controled FDR level", ylab="TPR",lwd=2)
+ lines(Seq,EBFDR,col="blue",lwd=2)
+ legend("topleft", lwd=2, col=c("red","blue"), c("DESeq","EBSeq"))
+
+
+ output=cbind( DETPR,EBTPR, DEFDR,EBFDR,DETPNum,EBTPNum,DEFDNum,EBFDNum)
+}
+