|
a |
|
b/NullModelTest.R |
|
|
1 |
NullModelTest <- |
|
|
2 |
function(null.out,x,xte,type=c("mle","deseq","quantile")){ |
|
|
3 |
type <- match.arg(type) |
|
|
4 |
if(type=="mle"){ |
|
|
5 |
sizeste <- rowSums(xte)/sum(x) |
|
|
6 |
nste <- outer(sizeste, colSums(x), "*") |
|
|
7 |
} else if (type=="quantile"){ |
|
|
8 |
sizeste <- pmax(1, apply(xte,1,quantile,.75)) # don't want to scale by anything less than 1... |
|
|
9 |
sizeste <- sizeste/sum(apply(x, 1, quantile, .75)) |
|
|
10 |
nste <- outer(sizeste, colSums(x), "*") |
|
|
11 |
} else if (type=="deseq"){ |
|
|
12 |
countste <- t(xte) |
|
|
13 |
sizeste <- apply(countste,2,function(cnts) median((cnts/null.out$geomeans)[null.out$geomeans>0], na.rm=TRUE))/sum(null.out$rawsizestr) |
|
|
14 |
nste <- outer(sizeste, colSums(x), "*") |
|
|
15 |
} |
|
|
16 |
return(list(nste=nste,sizeste=sizeste)) |
|
|
17 |
} |
|
|
18 |
|