| simTime {simulatorZ} | R Documentation |
simTime is a function to perform the parametric-bootstrap step, where we use the true coefficients and cumulative hazard to simulate survival and censoring.
simTime(simmodels, result)
simmodels |
a list in the form of the return value of simData() which consists of three lists: obj: a list of ExpressionSets, matrices or RangedSummarizedExperiments setsID: a list of set labels indicating which original set the simulated one is from indices: a list of patient labels to tell which patient in the original set is drawn |
result |
a list in the form of return of getTrueModel() which consists of five lists: Beta: a list of coefficients obtained by grid: timeline grid corresponding to hazard estimations censH and survH survH: cumulative hazard for survival times distribution censH: cumulative hazard for censoring times distribution lp: true linear predictors |
survival time is saved in phenodata, here the function still returns the ExpressionSets
Yuqing Zhang, Christoph Bernau, Levi Waldron
library(curatedOvarianData)
data(GSE17260_eset)
data(E.MTAB.386_eset)
data(GSE14764_eset)
esets <- list(GSE17260=GSE17260_eset, E.MTAB.386=E.MTAB.386_eset, GSE14764=GSE14764_eset)
esets.list <- lapply(esets, function(eset){
return(eset[1:500, 1:20])
})
## simulate on multiple ExpressionSets
set.seed(8)
y.list <- lapply(esets.list, function(eset){
time <- eset$days_to_death
cens.chr <- eset$vital_status
cens <- c()
for(i in seq_along(cens.chr)){
if(cens.chr[i] == "living") cens[i] <- 1
else cens[i] <- 0
}
y <- Surv(time, cens)
return(y)
})
# To perform both parametric and non-parametric bootstrap, you can call simBootstrap()
# or, you can divide the steps into:
res <- getTrueModel(esets.list, y.list, 100)
simmodels <- simData(obj=esets.list, y.vars=y.list, n.samples=10)
# Then, use this function
simmodels <- simTime(simmodels=simmodels, result=res)
# it also supports performing only the parametrc bootstrap step on a list of expressionsets
# but you need to construct the parameter by scratch
res <- getTrueModel(esets.list, y.list, 100)
setsID <- seq_along(esets.list)
indices <- list()
for(i in setsID){
indices[[i]] <- seq_along(sampleNames(esets.list[[i]]))
}
simmodels <- list(obj=esets.list, y.vars=y.list, indices=indices, setsID=setsID)
new.simmodels <- simTime(simmodels=simmodels, result=res)