如果(!quired(“ Biocmanager”))install.packages(“ Biocmanager”)Biocmanager :: install(“ Glmsparsenet”)
库(dplyr)库(ggplot2)库(生存)库(loose.rock)库(futile.logger)库(策展tcgadata)库(tcgautils)#library(glmsparsenet)####futile.logger.logger.logger.logger。last.value <-flog.layout(layout.format('[〜l] 〜m')).last.value <-soled.rock :: show.message(false)#设置ggplot2 default主题为最小值themimal themimal them_set(ggplot22):: theme_minimal())
数据是从从TCGA下载的在线策划数据集加载的策展
生物导体包装并处理。
为了加速过程,我们仅使用一个非常简化的数据集将其降至100个变量(基因),将其作为数据对象存储在此软件包中。但是,在以下块中描述了手动获取数据的过程。
prad <-CuratedTcgadata(diseAseCode =“ prad”,assays =“ rnaseq2genenorm”,false)
从临床柱中构建生存数据。
XDATA
和YDATA
#仅保持实体肿瘤(代码:01)prad.primary.solid.solid.tumor <-tcgautils :: SplitAssays(prad,'01')xdata.raw <-t(assay(prad.primary.solid.tumor.tumor.tumor [[1]])]))#获取生存信息ydata.raw <-Coldata(prad.primary.solid.tumor)%>%as.data.frame%>%##在所有天数之间找到最大时间(忽略错过)rowwise%>%突变(time = max(days_to_last_followup,days_to_death,na.rm = true))%>%#仅保留生存变量和代码选择(atteryId,status = vital_status,time,time)%>%>%#丢弃生存时间或等于0滤镜的人(!is.na(时间)和时间> 0)%>%>%as.data.frame#将索引设置为耐心Id rownames(ydata.raw)<-ydata.raw $ derationId#peritageid#保持标准偏差> 0的功能xdata.raw <-xdata.raw [tcgabarcode(rownames(xdata.raw))%rownames(ydata.raw),] xdata.raw <-xdata.raw <-xdata.raw%>%>%>%{!= 0)}%>%{xdata.raw [,。]}%>%scale#corde ydata与assay ydata.raw <-ydata.raw [tcgabarcode(tcgabarcode(rownames(xdata.raw))相同]。种子(参数$种子)Small.subset <-c(genEnames(c('ensg00000103091','ensg0000000064787','ensg00000119915','ensg00000120158','ensg00000114491'),100))%>%unique%>%排序
## Ensembl网站无响应,尝试USWest Mirror
xData <-xdata.raw [,small.subset [small.subset%in%colnames(xdata.raw)]] ydata <-ydata.raw%>%select(时间,状态)
使用集线器使用交叉验证函数进行拟合模型模型惩罚cv.glmhub
。
set.seed(params $ seed)拟合<-cv.glmhub(xdata,surch(ydata $ time,ydata $ status),family ='cox',nlambda = 1000,network ='cornect ='corner ='corner ='cornections = network.options = networkOptions = networkOptions(cutoff = .6,min.degree = .2))
显示了100
用于在10倍交叉验证中找到最佳值的不同参数。这两个垂直虚线代表了最佳模型和一个模型,其中选择了较少的变量(基因),但在最佳的标准误差距离内。
情节(合适)
采用最佳模型描述lambda.min
coefs.v <-coef(拟合,s ='lambda.min')[,1]%>%{。[。!= 0]} coefs.v%>%{data.frame(ensembl.id = names(。),gene.name = genEnames(names(。%安排(gene.name)%>%knitr :: kable()
## value [[3L]](cond)中的警告:查找基因名称时错误:## BMRequest中的错误(请求= request = request,verbose = verbose):内部服务器错误(http 500)。
emembl.id | gene.name | 系数 | |
---|---|---|---|
AKAP9 | AKAP9 | AKAP9 | 0.2616307 |
Alpk2 | Alpk2 | Alpk2 | -0.0714527 |
ATP5G2 | ATP5G2 | ATP5G2 | -0.2575987 |
C22orf32 | C22orf32 | C22orf32 | -0.2119992 |
CSNK2A1P | CSNK2A1P | CSNK2A1P | -1.4875518 |
myst3 | myst3 | myst3 | -1.6177076 |
NBPF10 | NBPF10 | NBPF10 | 0.4507147 |
PFN1 | PFN1 | PFN1 | 0.4161846 |
SCGB2A2 | SCGB2A2 | SCGB2A2 | 0.0749064 |
SLC25A1 | SLC25A1 | SLC25A1 | -0.8484827 |
STX4 | STX4 | STX4 | -0.1690185 |
SYP | SYP | SYP | 0.2425939 |
TMEM141 | TMEM141 | TMEM141 | -0.8273147 |
UMP | UMP | UMP | 0.2214068 |
ZBTB26 | ZBTB26 | ZBTB26 | 0.3696515 |
genenames(名称(coefs.v))%>%{标志(。$ external_gene_name)$ heatmap}
## Encembl网站无响应,尝试亚洲镜像
## Ensembl网站无响应,尝试使用useast镜子
## Ensembl网站无响应,尝试USWest Mirror
独立2GroupScox(AS.Vector(coefs.v),xdata [,names(coefs.v)],ydata,plot.title ='full dataSet',legend.outside = false)
## $ pvalue ## [1] 0.001155155 ## ## $ plot
## ## $ km ##呼叫:survfit(formula = restival :: surv(时间,状态)0 NA NA NA ##高风险248 10 3502 3467 NA