叉叉叉

你的位置:调教telegram > 叉叉叉 >

品色堂永远的免费论坛 RNAseq|Mime代码版-终极101 种机器学习算法组合构建最优预后模子

发布日期:2025-03-18 05:02    点击次数:67

品色堂永远的免费论坛 RNAseq|Mime代码版-终极101 种机器学习算法组合构建最优预后模子

Mime1为构建基于机器学习的集成模子提供了一个用户友好的管制决议品色堂永远的免费论坛,把握复杂的数据集来识别与预后关系的要津基因。

前边单独先容了Lasso ,randomForestSRC,Enet(Elastic Net),CoxBoost 和 SuperPC 构建糊口模子的款式和参数,本文先容若何使用Mime1包一局势完成文件中的101种机器学习组合的分析,并输出文件级别的图。

除此除外非凡先容一下(1)替换我方数据时刺眼的点 (2)若何索求指定模子下的riskscore效果进行后续分析 和 (3)若何对主义癌种进行模子比拟(胶质瘤不错使用数据内置的)(个东谈主合计更伏击)

一 载入R包,数据

该包连合了10种机器学习的包,是以装置上会略微繁琐一下,给点耐烦缺什么下载什么。

# options("repos"= c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))# options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/")if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")depens<-c('GSEABase', 'GSVA', 'cancerclass', 'mixOmics', 'sparrow', 'sva' , 'ComplexHeatmap' )for(i in 1:length(depens)){  depen<-depens[i]  if (!requireNamespace(depen, quietly = TRUE))  BiocManager::install(depen,update = FALSE)}if (!requireNamespace("CoxBoost", quietly = TRUE))  devtools::install_github("binderh/CoxBoost")if (!requireNamespace("fastAdaboost", quietly = TRUE))  devtools::install_github("souravc83/fastAdaboost")if (!requireNamespace("Mime", quietly = TRUE))  devtools::install_github("l-magnificence/Mime")library(Mime1)

领先检察示例数据

1. 基因集数据

不错是各别基因,热门通路(MsigDB),WGCNA概略PPI找到的hub gene ,概略某种单细胞亚型的marker gene 等等任何容颜得回的主义基因集

9999adc
load("./External data/genelist.Rdata")#> [1] "MYC"    "CTNNB1" "JAG2"   "NOTCH1" "DLL1"   "AXIN2"  "PSEN2"  "FZD1"   "NOTCH4" "LEF1"   "AXIN1"  "NKD1"   "WNT5B" #>[14] "CUL1"   "JAG1"   "MAML1"  "KAT2A"  "GNAI1"  "WNT6"   "PTCH1"  "NCOR2"  "DKK4"   "HDAC2"  "DKK1"   "TCF7"   "WNT1"  #>[27] "NUMB"   "ADAM17" "DVL2"   "PPARD"  "NCSTN"  "HDAC5"  "CCND2"  "FRAT1"  "CSNK1E" "RBPJ"   "FZD8"   "TP53"   "SKP2"  #>[40] "HEY2"   "HEY1"   "HDAC11"

2. 糊口数据与基因抒发信息

load("./External data/Example.cohort.Rdata") # 糊口数据与基因抒发信息list_train_vali_Data[["Dataset1"]][1:5,1:5]#                 ID    OS.time OS   MT-CO1   MT-CO3#60  TCGA.DH.A66B.01 1281.65322  0 13.77340 13.67931#234 TCGA.HT.7607.01   96.19915  1 14.96535 14.31857#42  TCGA.DB.A64Q.01  182.37755  0 13.90659 13.65321#126 TCGA.DU.8167.01  471.97707  0 14.90695 14.59776#237 TCGA.HT.7610.01 1709.53901  0 15.22784 14.62756

其中list_train_vali_Data是含有2个数据集的列表,每个数据集的第一列为ID ,2-3列为糊口信息(OS.time ,OS) ,背面为基因抒发量。

二 构建预后模子

1. 构建101机器学习模子组合

该包大大镌汰了学习资本,不错通过ML.Dev.Prog.Sig函数平直构建

res <- ML.Dev.Prog.Sig(train_data = list_train_vali_Data$Dataset1,                     list_train_vali_Data = list_train_vali_Data,                     unicox.filter.for.candi = T,                     unicox_p_cutoff = 0.05,                     candidate_genes = genelist,                     mode = 'all',nodesize =5,seed = 5201314 )

ML.Dev.Prog.Sig() 可选 all, single 和 double三种模式. all 为整个10种算法 以及 组合 . single 为用10种算法中的一种. double 为两种算法的组合,一般情况下使用 all 模式.

默许情况下 unicox.filter.for.candi 为 T , 会先对磨真金不怕火集进行单成分cox分析,unicox_p_cutoff 显赫的基因会用于构建预后模子.

要是使用我方数据的时候,需要刺眼:

(1)替换我方数据刺咫尺三列的条款,且将多个数据集以列表局势存储。

(2)分析之前最佳先证据 所罕有据连合是否 有基因集列表中的整个基因 ,减少报错。

(3)种子数详情好,会有一些小的影响 。

敬爱检察后发现示例数据Dataset2中劳苦基因连合的几个基因,然而为什么莫得报错呢 ?

data2 <- data2 %>%    dplyr::select(ID , OS.time , OS, genelist )#Error in `dplyr::select()`:#! Can't select columns that don't exist.#✖ Columns `JAG1`, `DKK4`, and `WNT1` don't exist.#Run `rlang::last_trace()` to see where the error occurred.

通过View(ML.Dev.Prog.Sig) 查抄函数品色堂永远的免费论坛,建造unicox.filter.for.candi = T 后会先作念单成分cox分析,单成分显赫的基因 才会行为机器学习101模子组合的候选基因进行后续分析,而下图红框中单基因显赫的基因,恰巧莫得dataset2中劳苦的`JAG1`, `DKK4`, and WNT1 基因,因此莫得报错。

图片

然而在不祥情哪些基因单成分预后显赫的前提下,分析我方数据时候还是先确保磨真金不怕火集和考据集均有基因列表的整个基因。

2. C-index 展示

示例数据list_train_vali_Data 为2个数据集的list,效果图中部队为2个,临了两列为Cindex的均值,这也即是机器学习模子组合文件中的主图。

cindex_dis_all(res,               validate_set = names(list_train_vali_Data)[-1],               order = names(list_train_vali_Data),               width = 0.35)

图片

3. 检察指定模子的效果

假定咱们罗致第一个模子(StepCox[forward] + plsRcox) ,不错单独检察该模子下各个数据集的cindex弘扬

cindex_dis_select(res,                  model="StepCox[forward] + plsRcox",                  order= names(list_train_vali_Data))

图片

也不错检察该模子下各个数据集的KM弧线情况

survplot <- vector("list",2) for (i in c(1:2)) {  print(survplot[[i]]<-rs_sur(res, model_name = "StepCox[forward] + plsRcox",                              dataset = names(list_train_vali_Data)[i],                              #color=c("blue","green"),                              median.line = "hv",                              cutoff = 0.5,                              conf.int = T,                              xlab="Day",pval.coord=c(1000,0.9))  )}aplot::plot_list(gglist=survplot,ncol=2)

图片

索求模子RS效果

这里有个很伏击的点是要索求指定模子下的RS效果,然后就不错笔据我方的需求再行画图KM 以及 孤苦预后分析,丛林图,列线图等其他分析了。

效果王人在res中,笔据str(res)知谈对应的信息,索求即可

head(res$riskscore$`StepCox[forward] + plsRcox`[[1]])head(res$riskscore$`StepCox[forward] + plsRcox`[[2]])

图片

4. AUC效果

野心每个模子的1年,3年,5年 的 auc值 ,并可视化整个模子的1年auc效果

all.auc.1y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],                             inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 1,                             auc_cal_method="KM")all.auc.3y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],                             inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 3,                             auc_cal_method="KM")all.auc.5y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],                             inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 5,                             auc_cal_method="KM")auc_dis_all(all.auc.1y,            dataset = names(list_train_vali_Data),            validate_set=names(list_train_vali_Data)[-1],            order= names(list_train_vali_Data),            width = 0.35,            year=1)

图片

一样不错画图采用模子下的auc弧线

roc_vis(all.auc.1y,        model_name = "StepCox[forward] + plsRcox",        dataset = names(list_train_vali_Data),        order= names(list_train_vali_Data),        anno_position=c(0.65,0.55),        year=1)

图片

auc_dis_select(list(all.auc.1y,all.auc.3y,all.auc.5y),               model_name="StepCox[forward] + plsRcox",               dataset = names(list_train_vali_Data),               order= names(list_train_vali_Data),               year=c(1,3,5))

图片

5. 模子比拟

该包还提供了和之前文件报谈的预后模子比拟的函数,虽然只提供了胶质瘤的。

那要是你作念的是其他癌种呢?不错通过检察函数了解是若何的输入局势,然后就作念对应的替换后就不错分析了。(很伏击)

cc.glioma.lgg.gbm <- cal_cindex_pre.prog.sig(use_your_own_collected_sig = F,                                             type.sig = c('Glioma','LGG','GBM'),                                             list_input_data = list_train_vali_Data)cindex_comp(cc.glioma.lgg.gbm,            res,            model_name="StepCox[forward] + plsRcox",            dataset=names(list_train_vali_Data))

图片

检察函数,找到内置模子的局势

type.sig = c('Glioma','LGG','GBM')pre.prog.sig <- Mime1::pre.prog.sig    if (all(type.sig %in% names(pre.prog.sig))) {      if (length(type.sig) == 1) {        sig.input <- pre.prog.sig[[type.sig[1]]]      }      else {        sig.input <- pre.prog.sig[[type.sig[1]]]        for (i in 2:length(type.sig)) {          sig.input <- rbind(sig.input, pre.prog.sig[[type.sig[i]]])        }      }    }    View(sig.input)

图片

检察30810537文件,发现最终组成riskscore的基因(热图)与 该包内置的基因一致,右图的统统也一致。

图片

OK ,到这里就完成了预后模子的构建以及考据,背面可能还需要笔据文中的实质将模子RS索求出来进行孤苦预后磨练以及一些可视化分析。

目前你要作念的即是 (1)准备主义癌种的TCGA数据和GEO数据--用于构建预后101模子 ,(2)主义癌种预后模子的基因列表 以及 对应的统统 -- 用于模子比拟。(3)写著述发表。

参考贵寓:https://github.com/l-magnificence/Mime?tab=readme-ov-file品色堂永远的免费论坛

本站仅提供存储做事,整个实质均由用户发布,如发现存害或侵权实质,请点击举报。

Powered by 调教telegram @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024