37 lines
1.3 KiB
R
37 lines
1.3 KiB
R
# npdro::createSimulation2() example for gwas simulation
|
|
if (!require("devtools")) install.packages("devtools")
|
|
library(devtools)
|
|
install_github("insilico/npdro")
|
|
library(npdro)
|
|
|
|
## Set Working Directory to file directory - RStudio approach
|
|
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
|
|
|
|
gen.gwas = function(samples, vars, batch_size=1000){
|
|
for (x in 1:ceiling(samples/batch_size)){
|
|
curr_batch <- samples - (batch_size*(x-1))
|
|
batch_gen <- ifelse(curr_batch > batch_size, batch_size, curr_batch)
|
|
data <- createSimulation2(data.type = "discrete", avg.maf = 0.2,
|
|
sim.type = "mainEffect",
|
|
pct.train = 1.0,
|
|
pct.imbalance=round(runif(n = 1, min = 0.1, max = 0.9),2),
|
|
main.bias = 0.4, pct.signals = 0.2,
|
|
num.samples = batch_gen,
|
|
num.variables = vars)
|
|
|
|
rownames(data$train) <- as.integer(rownames(data$train))+
|
|
(batch_size*(x-1))
|
|
|
|
if (x == 1){
|
|
write.table(data$train, "artif_gwas.csv", row.names = TRUE)
|
|
} else{
|
|
write.table(data$train, "artif_gwas.csv", row.names = TRUE,
|
|
append = TRUE, col.names = FALSE)
|
|
}
|
|
}
|
|
return(data$train)
|
|
}
|
|
|
|
gen.gwas(1000000, 10000)
|
|
|