如果(!需要(“BiocManager”)) install.packages (“BiocManager”) BiocManager::安装(“glmSparseNet”)
库(dplyr)库(ggplot2)图书馆(生存)图书馆(loose.rock)库(futile.logger)图书馆(curatedTCGAData)图书馆(TCGAutils) #库(glmSparseNet) # #一些通用选项徒劳的。记录器.Last调试包。值< - flog.layout(布局。格式(“[~ l] ~ m”)) .Last。值< - loose.rock: show.message (FALSE) #设置ggplot2默认主题最小theme_set (ggplot2: theme_minimal ())
数据从一个在线加载数据集策划TCGA下载使用curatedTCGAData
bioconductor包和加工。
加速过程中,我们使用一个变量数据集大幅下降到107只(基因),这是作为一个数据对象存储在这个包中。然而,手动获取数据的过程中描述下面的块。
brca < - curatedTCGAData (diseaseCode =“brca化验=“RNASeq2GeneNorm”,假)
#只保留固体肿瘤brca.primary.solid(代码:01)。肿瘤< - TCGAutils: splitAssays xdata (brca,“01”)。生< - t(试验(brca.primary.solid.tumor [[1]])) # ydata获取生存信息。原始< - colData (brca.primary.solid.tumor) % > % as.data.frame % > % #只保留数据相对于生存或样本选择(patientID、vital_status Days.to.date.of。死亡,Days.to.Date.of.Last。接触,days_to_death days_to_last_followup Vital.Status) % > % #天转换为整数变异(Days.to.date.of。死= as.integer (Days.to.date.of.Death) % > %变异(Days.to.Last。联系= as.integer (Days.to.Date.of.Last.Contact) % > % #所有天之间找到最大的时间(忽略失踪)行% > %变异(时间= max (days_to_last_followup Days.to.date.of。死亡,Days.to.Last。接触,days_to_death na。rm = TRUE) % > % #只保留生存变量和代码选择(patientID、状态= vital_status时间)% > % #抛弃患者生存时间小于等于0过滤器(! is.na(时间)和时间> 0)% > % as.data.frame #索引设置为patientID rownames (ydata.raw) < - ydata。生patientID #美元xdata获得生存之间的匹配和分析数据。生< - xdata。raw[TCGAbarcode(rownames(xdata.raw)) %in% rownames(ydata.raw),] xdata.raw <- xdata.raw %>% { (apply(., 2, sd) != 0) } %>% { xdata.raw[, .] } %>% scale # Order ydata the same as assay ydata.raw <- ydata.raw[TCGAbarcode(rownames(xdata.raw)), ] # Using only a subset of genes previously selected to keep this short example. set.seed(params$seed) small.subset <- c('CD5', 'CSF2RB', 'IRGC', 'NEUROG2', 'NLRC4', 'PDE11A', 'PTEN', 'TP53', 'BRAF', 'PIK3CB', 'QARS', 'RFC3', 'RPGRIP1L', 'SDC1', 'TMEM31', 'YME1L1', 'ZBTB11', sample(colnames(xdata.raw), 100)) %>% unique xdata <- xdata.raw[, small.subset[small.subset %in% colnames(xdata.raw)]] ydata <- ydata.raw %>% select(time, status)
惩罚的适合模型模型中心使用交叉验证函数cv.glmHub
。
set.seed (params种子美元)< - cv。glmHub (xdata Surv (ydata时间美元、美元ydata状态),家庭=考克斯,λ= buildLambda(1),网络=“相关性”,网络。选择= networkOptions(截止= 6,min.degree = 2))
# #警告在调整。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):崩溃,独一无二的# # # #警告在规范“x”值。值(x, y,联系,失踪(关系):独一无二的# #“x”价值观崩溃
显示的结果One hundred.
不同的参数用于寻找最优价值10倍交叉验证。两个垂直的虚线代表最好的模型和模型变量选择较少(基因),但在一个标准误差距离最好的。
情节(安装)
最好的模型描述lambda.min
系数。v < -系数(安装、s = lambda.min) [1] % > % {。。! = 0]}
# #警告在调整。值(x, y,联系,失踪(关系):独一无二的# #“x”价值观崩溃
系数。v % > % {data.frame (gene.name =名字(.),系数=,stringsAsFactors = FALSE)} % > %安排(gene.name) % > % knitr:: kable ()
gene.name | 系数 |
---|---|
CD5 | -0.1663218 |
名(coefs.v) % > %{标志(.)$热图}
separate2GroupsCox (as.vector (coefs.v) xdata[,名字(coefs.v)], ydata,阴谋。title =“完整数据集”,传说。外= FALSE)
pvalue美元# # # # # # # # $ 0.001237802[1]阴谋
# # # # # # $公里叫:survfit(公式=生存::Surv(时间、状态)~组,data = prognostic.index.df) # # # # n事件中位数0.95拼箱0.95 ucl # #低风险540 58 3959 3492 NA # # 540 94 3738 3262 4456风险很高