发布日期:2024-06-30 23:49 点击次数:121
机器学习构建预后模子的著作许多,且越来越卷,动不动即是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
下一篇:聪慧奶汪学会了喝完水后我方用布擦嘴,款式果真好可儿!