机器学习构建预后模子的著述许多,且越来越卷,动不动即是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弧线
apptesting$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纯生信挖掘念念路共享?不软件开发资讯,主如果送你代码!(提议储藏)
本站仅提供存储职业,总计实质均由用户发布,如发现存害或侵权实质,请点击举报。