Diff of /CountDataSet1.R [000000] .. [81de4e]

Switch to unified view

a b/CountDataSet1.R
1
CountDataSet1 <- function (n, p, K, param, sdsignal, drate) 
2
{
3
    if (n < 4 * K) 
4
        stop("We require n to be at least 4*K.")
5
    q0 <- rexp(p, rate = 1/25)
6
    
7
    isDE <-  runif(p)< drate    #runif(p)
8
    classk <- matrix(NA, nrow = K, ncol = p)
9
    for (k in 1:K) {
10
        lfc <- rnorm(p, sd = sdsignal)
11
        classk[k, ] <- ifelse(isDE, q0 * exp(lfc), q0)
12
    }
13
    truesf <- runif(n) * 2 + 0.2
14
    truesfte <- runif(n) * 2 + 0.2
15
    conds <- sample(c(rep(1:K, 4), sample(1:K, n - 4 * K, replace = TRUE)))
16
    condste <- sample(c(rep(1:K, 4), sample(1:K, n - 4 * K, replace = TRUE)))
17
    x <- xte <- matrix(NA, nrow = n, ncol = p)
18
    for (i in 1:n) {
19
        for (k in 1:K) {
20
            if (conds[i] == k) 
21
                x[i, ] <- rnbinom(p, mu = truesf[i] * classk[k, 
22
                  ], size = param)
23
            if (condste[i] == k) 
24
                xte[i, ] <- rnbinom(p, mu = truesfte[i] * classk[k, 
25
                  ], size = param)
26
        }
27
    }
28
    rm <- apply(x, 2, sum) == 0
29
    return(list(x = x[, !rm], xte = xte[, !rm], y = conds, yte = condste, 
30
        truesf = truesf, truesfte = truesfte, dkg=classk))
31
}