热点资讯
物联网软件开发定制 RNAseq|Mime代码版-终极101 种机器学习算法组合构建最优预后模子
发布日期:2024-11-05 04:18 点击次数:190
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 等等任何样式获得的目的基因集
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)
图片
[扫码下载app,中过数字彩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物联网软件开发定制
本站仅提供存储工作,整个实质均由用户发布,如发现存害或侵权实质,请点击举报。