]> git.donarmstrong.com Git - rsem.git/blobdiff - EBSeq/demo/EBSeq.R
Included EBSeq for downstream differential expression analysis
[rsem.git] / EBSeq / demo / EBSeq.R
diff --git a/EBSeq/demo/EBSeq.R b/EBSeq/demo/EBSeq.R
new file mode 100644 (file)
index 0000000..4ffc4a4
--- /dev/null
@@ -0,0 +1,110 @@
+library(EBSeq)
+set.seed(13)
+
+# Section 3.1
+
+GeneGenerate=GeneSimu(DVDconstant=4, DVDqt1=NULL, DVDqt2=NULL,
+  Conditions=rep(c(1,2),each=5), NumofSample=10, NumofGene=10000,
+  DEGeneProp=.1, Phiconstant=NULL, Phi.qt1=.1, Phi.qt2=.9,
+  Meanconstant=NULL, OnlyData=T)
+GeneData=GeneGenerate$data
+GeneTrueDENames=GeneGenerate$TrueDE
+str(GeneData)
+str(GeneTrueDENames)
+
+Sizes=MedianNorm(GeneData)
+
+EBres=EBTest(Data=GeneData, 
+  Conditions=as.factor(rep(c(1,2),each=5)),sizeFactors=Sizes, maxround=5)
+
+PP=GetPP(EBres)
+str(PP)
+DEfound=names(PP)[which(PP>=.95)]
+str(DEfound)
+sum(DEfound%in%GeneTrueDENames)
+
+QQP(QList=EBres$QList1, AlphaResult=EBres[[1]][5,1], 
+  BetaResult=EBres[[2]][5,1], name="Gene Simulation", AList="F", GroupName=NULL)
+DenNHist(QList=EBres$QList1, Alpha=EBres[[1]][5,1], Beta=EBres[[2]][5,1], 
+  name="Gene Simulation", AList="F", GroupName=NULL)
+
+# Section 3.2
+
+IsoGenerate=IsoSimu(DVDconstant=NULL, DVDqt1=.97, DVDqt2=.98, 
+  Conditions=as.factor(rep(c(1,2),each=5)), NumofSample=10, 
+  NumofIso=c(1000,2000,3000), DEIsoProp=.1, Phiconstant=NULL, 
+  Phi.qt1=.25, Phi.qt2=.75, OnlyData=T )
+str(IsoGenerate)
+
+IsoMat=do.call(rbind,IsoGenerate$data)
+str(IsoMat)
+
+IsoSizes=MedianNorm(IsoMat)
+
+IsoNames=rownames(IsoMat)
+str(IsoNames)
+GeneNames=paste("Gene",c(1:3000),sep="_")
+IsosGeneNames=c(GeneNames[1:1000],rep(GeneNames[1001:2000],each=2),
+  rep(GeneNames[2001:3000],each=3))
+NgList=GetNg(IsoNames, IsosGeneNames)
+IsoNgTrun=NgList$IsoformNgTrun
+IsoNgTrun[c(1:3,1001:1003,3001:3003)]
+
+IsoEBres=EBTest(Data=IsoMat, NgVector=IsoNgTrun, 
+  Conditions=as.factor(rep(c(1,2),each=5)),sizeFactors=IsoSizes, maxround=5)
+IsoPP=GetPP(IsoEBres)
+str(IsoPP)
+IsoDE=IsoPP[which(IsoPP>=.95)]
+str(IsoDE)
+sum(names(IsoDE)%in%IsoGenerate$TrueDE)
+
+par(mfrow=c(2,2))
+PolyFitValue=vector("list",3)
+for(i in 1:3)
+  PolyFitValue[[i]]=PolyFitPlot(IsoEBres$C1Mean[[i]], 
+    IsoEBres$C1EstVar[[i]],5)
+
+PolyAll=PolyFitPlot(unlist(IsoEBres$C1Mean), unlist(IsoEBres$C1EstVar),5)
+lines(log10(IsoEBres$C1Mean[[1]][PolyFitValue[[1]]$sort]), 
+  PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort],col="yellow")
+lines(log10(IsoEBres$C1Mean[[2]][PolyFitValue[[2]]$sort]), 
+  PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort],col="pink")
+lines(log10(IsoEBres$C1Mean[[3]][PolyFitValue[[3]]$sort]), 
+  PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort],col="green")
+legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"),
+  col=c("red","yellow","pink","green"),lty=1,lwd=3,box.lwd=2)
+
+par(mfrow=c(2,2))
+QQP(QList=IsoEBres$QList1, AlphaResult=IsoEBres[[1]][5,],
+ BetaResult=IsoEBres[[2]][5,], 
+ name="Isoforms", AList="F", GroupName=paste("Ng = ",c(1:3),sep=""))
+
+DenNHist(QList=IsoEBres$QList1, Alpha=IsoEBres[[1]][5,], 
+  Beta=IsoEBres[[2]][5,], 
+  name="Isoforms", AList="F", GroupName=paste("Ng = ",c(1:3),sep=""))
+
+# Section 3.3
+
+Conditions=c("C1","C1","C2","C2","C3","C3")
+PosParti=GetPatterns(Conditions)
+PosParti
+
+Parti=PosParti[-3,]
+Parti
+
+MultiData=GeneMultiSimu(Conditions=Conditions,AllParti=Parti,
+          NumofSample=6,NumofGene=1000,DEGeneProp=c(.7,.1,.1,.1),
+          DVDqt1=.98,DVDqt2=.99,Phi.qt1=.25,Phi.qt2=.75)
+str(MultiData)
+
+MultiSize=MedianNorm(MultiData$data)
+MultiRes=EBMultiTest(MultiData$data,NgVector=NULL,Conditions=Conditions,
+           AllParti=Parti, sizeFactors=MultiSize, maxround=5)
+MultiPP=GetMultiPP(MultiRes)
+names(MultiPP)
+MultiPP$PP[1:10,]
+MultiPP$MAP[1:10]
+MultiPP$Patterns
+sum(MultiPP$MAP==MultiData$Patterns)
+
+# EOF
\ No newline at end of file