发布日期:2024-06-30 22:42 点击次数:111
机器学习构建预后模子的著作许多,且越来越卷,动不动即是10种模子的101种组合,这个系列会一一的先容这些常用于预后模子变量筛选和模子构建的机器学习挨次。
图片
作家代码公开在github上了,GitHub - Zaoqu-Liu/IRLS: Machine learning-based integrative analysis develops an immune-derived lncRNA signature for improving clinical outcomes in colorectal cancer 不错自行下载 大要 后台讲述 “机器学习”获得下载好的。前边先容过了RNAseq|Lasso构建预后模子,绘制风险评分的KM 和 ROC弧线,本次先容使用randomForestSRC完成赶快丛林的糊口分析。
一 数据输入,解决
守旧使用前边Lasso得到的SKCM.uni-COX.RData数据(筛选过的单要素预后显赫的基因),背面的更多机器学习的推文均会使用该数据
#载入R包library(tidyverse)library(openxlsx)library("survival")library("survminer")library(randomForestSRC)load("SKCM.uni-COX.RData")module_expr.cox2 <- module_expr.cox %>% select(- "_PATIENT") %>% column_to_rownames("sample")module_expr.cox2[1:6,1:6]
图片
将数据解决成以上阵势,含有 随访时辰 + 糊口景况 + 基因抒发信息。1,数据集拆分普通情况下是TCGA构建模子,然后在GEO中进行考据。这里仅为示例,径直按照7:3的比例将TCGA数据拆分为检修集和考据集(背面会先容更多拆分挨次)
# 7:3 拆分ind <- sample(nrow(module_expr.cox2),nrow(module_expr.cox2) * 0.7 )train <- module_expr.cox2[ind,]test <- module_expr.cox2[-ind,]##确保检修集和考据集的基因一致gene_com <- intersect(colnames(train) ,colnames(test))training <- train %>% select(gene_com)testing <- test %>% select(gene_com)training[1:4,1:4]# OS OS.time TYRP1 IGKV4_1#TCGA-EE-A2MM-06A 1 5107 1.38460143 5.2408878#TCGA-EE-A2GE-06A 0 5286 0.04187911 10.1611678#TCGA-ER-A194-01A 1 1354 9.56901508 0.3122559#TCGA-EB-A44R-06A 1 315 0.06131739 7.3046339注:检修集和考据集的基因一致,否则可能存在无法考据的情况。
二 构建赶快丛林糊口模子
1,rfsrc函数构建RSF 糊口模子
磨蹭开发赶快种子seed,肤浅以后复现;此外nodesize 值不错多开发几个尝试
fit <- rfsrc(Surv(OS.time,OS)~.,data = training, ntree = 1000, nodesize = 10, splitrule = 'logrank', importance = T, proximity = T, forest = T, seed = 1234)
图片
不错看到该模子含有320样本,537个基因。2,蹙迫性变量使用赶快丛林糊口分析进行变量筛选,主要依据的即是每个基因的蹙迫性值 ,该数据在fit$importance中,这里示例稽查TOP20 的基因磨蹭:这里的蹙迫性基因不会得到文献中常提到的基因前边的悉数,悉数不错通过将蹙迫基因进行多要素COX糊口分析得到。
importance_gene <- data.frame(fit$importance) %>% rownames_to_column("gene") %>% arrange(- fit.importance) %>% head(20) importance_gene
图片
(1)使用plot函数径直可视化plot(fit,10)
图片
(2)使用ggplot2绘制柱形图使用reorder函数进行排序
ggplot(data=importance_gene, aes(x = reorder(gene, fit.importance), y=fit.importance,fill=gene)) + geom_bar(stat="identity") + theme_classic() + theme(legend.position = 'none') + coord_flip()
图片
这么就不会拥堵在整个,且可自界说神志。
三 RSF模子考据
这内部先容2种考据形式,第一种起到了和Lasso同样的筛选基因的作用,第二种是径直考据。
1,使用RSF得到的蹙迫基因构建COX模子(1)在上头的importance_gene文献中,证实fit.importance开发阈值,然后选出候选基因 大要
(2)在上头的importance_gene文献中,径直剿袭TOP些许的基因看成候选基因。
然后将候选基因构建多要素COX模子,这么就不错得到文献中常见的基因悉数。
注:这里的阈值和TOP莫得固定的cutoff ,效力导向即可。
2,RSF模子径直考据集瞻望径直使用考据集考据模子,得到每个样本的悉数,然后不错使用糊口分析得到Cindex以及KM弧线等。
(1)C-index
fit.p <- predict(fit, as.data.frame(testing))testing$RSF_p <- as.vector(fit.p$predicted)#预计C indextesting_surv <- coxph(Surv(OS.time, OS) ~ fit.p$predicted,data = testing)summary(testing_surv)$concordance
C se(C) 0.64523954 0.03881865
(2)KM弧线
testing$RSF_score <- ifelse(testing$RSF_p > median(testing$RSF_p),"High","Low")fit <- survfit(Surv(OS.time, as.numeric(OS)) ~ RSF_score, data=testing)ggsurvplot(fit, data = testing, pval = T, risk.table = T, surv.median.line = "hv", #添加中位糊口弧线 palette=c("red", "blue"), #改换线的神志 legend.labs=c("High risk","Low risk"), #标签 legend.title="RiskScore", title="Overall survival", #标题 ylab="Cumulative survival (percentage)",xlab = " Time (Days)", #改换横纵坐标 censor.shape = 124,censor.size = 2,conf.int = FALSE, #删失点的方法和大小break.x.by = 720#横坐标圮绝)
图片
这么就完成了赶快丛林糊口模子筛选变量大要瞻望的先容,Lasso除外不错多一种尝试了。
参考贵寓:
[1] Getting starting with the randomForestSRC R-package for random forest analysis of regression, classification, survival and more · Fast Unified Random Forests with randomForestSRC
[2] Machine learning-based integration develops an immune-derived lncRNA signature for improving outcomes in colorectal cancer◆ ◆ ◆ ◆ ◆
悉心整理(含图PLUS版)|R话语生信分析,可视化(R统计,ggplot2画图,生信图形可视化汇总)
RNAseq纯生信挖掘念念路共享?不,主如若送你代码!(提议储藏)
本站仅提供存储职业,通盘实际均由用户发布,如发现存害或侵权实际,请点击举报。 上一篇:教科版科学六年齿下册全册常识点整理
下一篇:RNAseq-ML|randomForestSRC完缔造时丛林生计分析-预后模子库+1