--- a +++ b/NullModelTest.R @@ -0,0 +1,18 @@ +NullModelTest <- +function(null.out,x,xte,type=c("mle","deseq","quantile")){ + type <- match.arg(type) + if(type=="mle"){ + sizeste <- rowSums(xte)/sum(x) + nste <- outer(sizeste, colSums(x), "*") + } else if (type=="quantile"){ + sizeste <- pmax(1, apply(xte,1,quantile,.75)) # don't want to scale by anything less than 1... + sizeste <- sizeste/sum(apply(x, 1, quantile, .75)) + nste <- outer(sizeste, colSums(x), "*") + } else if (type=="deseq"){ + countste <- t(xte) + sizeste <- apply(countste,2,function(cnts) median((cnts/null.out$geomeans)[null.out$geomeans>0], na.rm=TRUE))/sum(null.out$rawsizestr) + nste <- outer(sizeste, colSums(x), "*") + } + return(list(nste=nste,sizeste=sizeste)) +} +