]> git.donarmstrong.com Git - rsem.git/blobdiff - EBSeq/R/LikefunMultiEMP.R
Included EBSeq for downstream differential expression analysis
[rsem.git] / EBSeq / R / LikefunMultiEMP.R
diff --git a/EBSeq/R/LikefunMultiEMP.R b/EBSeq/R/LikefunMultiEMP.R
new file mode 100644 (file)
index 0000000..510cb1e
--- /dev/null
@@ -0,0 +1,28 @@
+LikefunMulti <-
+function(ParamPool, InputPool)
+{
+
+NoneZeroLength=InputPool[[4]]
+AlphaIn=ParamPool[1]
+BetaIn=ParamPool[2:(1+NoneZeroLength)]
+PIn=ParamPool[(2+NoneZeroLength):length(ParamPool)]
+PInAll=c(1-sum(PIn),PIn)
+ZIn=InputPool[[3]]
+Input=InputPool[[2]]
+InputSP=InputPool[[1]]
+RIn=InputPool[[5]]
+RInSP=InputPool[[6]]
+NumIn=InputPool[[7]]
+AllParti=InputPool[[8]]
+PInMat=matrix(rep(1,nrow(Input)),ncol=1)%*%matrix(PInAll,nrow=1)
+##Function here
+FList=sapply(1:nrow(AllParti),function(i)sapply(1:nlevels(as.factor(AllParti[i,])),
+                                               function(j)f0(do.call(cbind,InputSP[AllParti[i,]==j]),AlphaIn, BetaIn, 
+                                       do.call(cbind,RInSP[AllParti[i,]==j]), NumIn, log=T)),
+                                               simplify=F) 
+FPartiLog=sapply(FList,rowSums)
+#FMat=exp(FPartiLog)
+FMat=FPartiLog
+-sum(ZIn*(FMat+log(PInMat)))
+}
+