s_response {eclust} | R Documentation |
Generate True Response vector for Linear Simulation
Description
Given the true beta vector, covariates and environment variable this function generates the linear response with specified signal to noise ratio.
Usage
s_response(n, n0, p, genes, binary_outcome = FALSE, E,
signal_to_noise_ratio = 1, include_interaction = FALSE, beta = NULL)
Arguments
n |
Total number of subjects |
n0 |
Total number of unexposed subjects |
p |
Total number of genes (or covariates) |
genes |
nxp matrix of the genes or covariates |
binary_outcome |
Logical. Should a binary outcome be generated. Default
is |
E |
binary 0,1, vector of the exposure/environment variable |
signal_to_noise_ratio |
a numeric variable for the signal to noise ratio |
include_interaction |
Logical. Should the response include the
interaction between E and the genes (for the non-zero |
beta |
true beta coefficient vector. Assumes this vector is in the same
order as the |
Value
a data.frame/data.table containing the response and the design
matrix. Also an object of class expression
Examples
library(magrittr)
# simulation parameters
rho = 0.90; p = 500 ;SNR = 1 ; n = 200; n0 = n1 = 100 ; nActive = p*0.10 ; cluster_distance = "tom";
Ecluster_distance = "difftom"; rhoOther = 0.6; betaMean = 2;
alphaMean = 1; betaE = 3; distanceMethod = "euclidean"; clustMethod = "hclust";
cutMethod = "dynamic"; agglomerationMethod = "average"
#in this simulation its blocks 3 and 4 that are important
#leaveOut: optional specification of modules that should be left out
#of the simulation, that is their genes will be simulated as unrelated
#("grey"). This can be useful when simulating several sets, in some which a module
#is present while in others it is absent.
d0 <- s_modules(n = n0, p = p, rho = 0, exposed = FALSE,
modProportions = c(0.15,0.15,0.15,0.15,0.15,0.25),
minCor = 0.01,
maxCor = 1,
corPower = 1,
propNegativeCor = 0.3,
backgroundNoise = 0.5,
signed = FALSE,
leaveOut = 1:4)
d1 <- s_modules(n = n1, p = p, rho = rho, exposed = TRUE,
modProportions = c(0.15,0.15,0.15,0.15,0.15,0.25),
minCor = 0.4,
maxCor = 1,
corPower = 0.3,
propNegativeCor = 0.3,
backgroundNoise = 0.5,
signed = FALSE)
truemodule1 <- d1$setLabels
X <- rbind(d0$datExpr, d1$datExpr) %>%
magrittr::set_colnames(paste0("Gene", 1:p)) %>%
magrittr::set_rownames(paste0("Subject",1:n))
betaMainEffect <- vector("double", length = p)
# the first nActive/2 in the 3rd block are active
betaMainEffect[which(truemodule1 %in% 3)[1:(nActive/2)]] <- runif(
nActive/2, betaMean - 0.1, betaMean + 0.1)
# the first nActive/2 in the 4th block are active
betaMainEffect[which(truemodule1 %in% 4)[1:(nActive/2)]] <- runif(
nActive/2, betaMean+2 - 0.1, betaMean+2 + 0.1)
beta <- c(betaMainEffect, betaE)
result <- s_response(n = n, n0 = n0,
p = p, genes = X, binary_outcome = FALSE,
E = c(rep(0,n0), rep(1, n1)), signal_to_noise_ratio = 1,
include_interaction = FALSE,
beta = beta)
result[1:5,1:5]