|
a |
|
b/CountDataSet.R |
|
|
1 |
CountDataSet <- function(n,p,K,param,sdsignal){ |
|
|
2 |
if(n < 4*K) stop("We require n to be at least 4*K.") |
|
|
3 |
q0 <- rexp(p, rate = 1/25) |
|
|
4 |
isDE <- runif(p) < 0.3 |
|
|
5 |
classk <- matrix(NA, nrow=K, ncol=p) |
|
|
6 |
for(k in 1:K){ |
|
|
7 |
lfc <- rnorm(p, sd = sdsignal) |
|
|
8 |
classk[k,] <- ifelse(isDE, q0*exp(lfc), q0) |
|
|
9 |
} |
|
|
10 |
truesf <- runif(n)*2+.2 #size factors for training observations |
|
|
11 |
truesfte <- runif(n)*2+.2 #size factors for test observations |
|
|
12 |
conds <- sample(c(rep(1:K, 4), sample(1:K, n-4*K, replace=TRUE))) # class labels for training observations |
|
|
13 |
condste <- sample(c(rep(1:K, 4), sample(1:K, n-4*K, replace=TRUE))) # class labels for test observations |
|
|
14 |
x <- xte <- matrix(NA, nrow=n, ncol=p) |
|
|
15 |
for(i in 1:n){ |
|
|
16 |
for(k in 1:K){ |
|
|
17 |
if(conds[i]==k) x[i,] <- rnbinom(p, mu = truesf[i]*classk[k,], size=param) |
|
|
18 |
if(condste[i]==k) xte[i,] <- rnbinom(p, mu = truesfte[i]*classk[k,], size=param) |
|
|
19 |
} |
|
|
20 |
} |
|
|
21 |
rm <- apply(x,2,sum)==0 |
|
|
22 |
return(list(x=x[,!rm],xte=xte[,!rm],y=conds,yte=condste, truesf=truesf, truesfte=truesfte)) |
|
|
23 |
} |
|
|
24 |
|
|
|
25 |
#CountDataSet <- function(n,p,K,param,sdsignal){ |
|
|
26 |
# if(n < 4*K) stop("We require n to be at least 4*K.") |
|
|
27 |
# q0 <- rexp(p, rate = 1/250)/10 |
|
|
28 |
# isDE <- runif(p) < 0.3 |
|
|
29 |
# classk <- matrix(NA, nrow=K, ncol=p) |
|
|
30 |
# for(k in 1:K){ |
|
|
31 |
# lfc <- rnorm(p, sd = sdsignal) |
|
|
32 |
# classk[k,] <- ifelse(isDE, q0*2^(lfc/2), q0) |
|
|
33 |
# } |
|
|
34 |
# truesf <- pmax(.6+.3*rnorm(n), .2) #size factors for training observations |
|
|
35 |
# truesfte <- pmax(.6+.3*rnorm(n), .2) #size factors for test observations |
|
|
36 |
# conds <- sample(c(rep(1:K, 4), sample(1:K, n-4*K, rep=TRUE))) # class labels for training observations |
|
|
37 |
# condste <- sample(c(rep(1:K, 4), sample(1:K, n-4*K, rep=TRUE))) # class labels for test observations |
|
|
38 |
# x <- xte <- matrix(NA, nrow=n, ncol=p) |
|
|
39 |
# for(i in 1:n){ |
|
|
40 |
# for(k in 1:K){ |
|
|
41 |
# if(conds[i]==k) x[i,] <- rnbinom(p, mu = truesf[i]*classk[k,], size=param) |
|
|
42 |
# if(condste[i]==k) xte[i,] <- rnbinom(p, mu = truesfte[i]*classk[k,], size=param) |
|
|
43 |
# } |
|
|
44 |
# } |
|
|
45 |
# rm <- apply(x,2,sum)==0 |
|
|
46 |
# return(list(x=x[,!rm],xte=xte[,!rm],y=conds,yte=condste, truesf=truesf, truesfte=truesfte)) |
|
|
47 |
#} |