TCGA数据批量运行Coxph函数

这篇具有很好参考价值的文章主要介绍了TCGA数据批量运行Coxph函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

df数据框形如:
TCGA数据批量运行Coxph函数,R,R文章来源地址https://www.toymoban.com/news/detail-622022.html

djs.coxph <- function(df,genelist){
  library(survival)
  library(survminer)
  
  dir.create("./survival")
  setwd("./survival")
  
  # 准备好的生存分析数据框,变量中包括OS.time,OS以及values of gene expression 
  df <- as.data.frame(df)
  genelist <- genelist
  
  
  # 生成文件头,用于保存cox分析结果
  colname<-c("gene","beta", "HR (95% CI for HR)", "wald.test", "p.value")
  write.table(t(colname),file="./summary_HR.csv",
              sep=",",append=T,col.names=F,row.names=F)
  
  # 对每一个gene运行coxph
  
  lapply(genelist, function(x){
    univ_formulas <- univ_formulas <- as.formula(paste('Surv(OS.time, OS)~', x))
    univ_models <- coxph( univ_formulas, data = df)
    
    x <- summary(univ_models)
    p.value<-signif(x$wald["pvalue"], digits=2)
    wald.test<-signif(x$wald["test"], digits=2)
    beta<-signif(x$coef[1], digits=2);#coeficient beta
    HR <-signif(x$coef[2], digits=2);#exp(beta)
    HR.confint.lower <- signif(x$conf.int[,"lower .95"], 2)
    HR.confint.upper <- signif(x$conf.int[,"upper .95"],2)
    HR <- paste0(HR, " (", 
                 HR.confint.lower, "-", HR.confint.upper, ")")
    res<-c(i,beta, HR, wald.test, p.value)
    
    # 写入结果
    write.table(t(res),file="./summary_HR.csv",
                sep=",",append=T,col.names=F,row.names=F)
  })
}
djs.KMplot <- function(df,genelist,group){
  library(survival)
  library(survminer)
  
  dir.create("./survival")
  setwd("./survival")
  
  # 准备好的生存分析数据框,变量中包括OS.time,OS以及values of gene expression 
  df <- as.data.frame(df)
  genelist <- genelist
  group <- group
  
  # 判断使用那种分组方法
  if(group == "median"){
    lapply(genelist, function(x){
      df$group <- ifelse(df[,x] >= median(df[,x]),"high","low")
      # KMplot
      fit <- survfit(Surv(OS.time, OS) ~ group,data = df)
      a <- ggsurvplot(fit,
                      pval = TRUE,
                      conf.int=TRUE,
                      pval.size=5,
                      xlab=i,
                      palette=c("red", "blue"),
                      legend.labs=c("High", "Low"),
                      risk.table=T,
                      risk.table.height=.25)
      
      b <- surv_pvalue(fit)
      # 输出pvalue of logrank test
      write.table(t(c(x,b$pval)),file="./pvalue.of.survivaldata.csv",
                  sep=",",append=T,col.names=F,row.names=F)
      # 输出 风险事件表
      write.table(x,file="./risktable.of.survivaldata.csv",
                  sep=",",append=T,col.names=F,row.names=F)
      write.table(a$data.survtable,file="./risktable.of.survivaldata.csv",
                  sep=",",append=T,col.names=T,row.names=F)
      # 输出KMplot
      png(paste("./",x,"_survival.png",sep = ""))
      print(a)
      dev.off() 
    })
  }
  
  if(group == "mean"){
    lapply(genelist, function(x){
      df$group <- ifelse(df[,x] >= mean(df[,x]),"high","low")
      # KMplot
      fit <- survfit(Surv(OS.time, OS) ~ group,data = df)
      a <- ggsurvplot(fit,
                      pval = TRUE,
                      conf.int=TRUE,
                      pval.size=5,
                      xlab=i,
                      palette=c("red", "blue"),
                      legend.labs=c("High", "Low"),
                      risk.table=T,
                      risk.table.height=.25)
      
      b <- surv_pvalue(fit)
      # 输出pvalue of logrank test
      write.table(t(c(x,b$pval)),file="./pvalue.of.survivaldata.csv",
                  sep=",",append=T,col.names=F,row.names=F)
      # 输出 风险事件表
      write.table(x,file="./risktable.of.survivaldata.csv",
                  sep=",",append=T,col.names=F,row.names=F)
      write.table(a$data.survtable,file="./risktable.of.survivaldata.csv",
                  sep=",",append=T,col.names=T,row.names=F)
      # 输出KMplot
      png(paste("./",x,"_survival.png",sep = ""))
      print(a)
      dev.off() 
    })
  }
  
  if(group == "quantile"){
      lapply(genelist, function(x){
        df$group <- ifelse(df[,x] >= quantile(df[,x])[[4]],"high",
                           ifelse(df[,x] <= quantile(df[,x])[[2]],"low","undetermine"))
        # KMplot
        fit <- survfit(Surv(OS.time, OS) ~ group,data = df[df$group != "undetermine",])
        a <- ggsurvplot(fit,
                        pval = TRUE,
                        conf.int=TRUE,
                        pval.size=5,
                        xlab=i,
                        palette=c("red", "blue"),
                        legend.labs=c("High", "Low"),
                        risk.table=T,
                        risk.table.height=.25)
        
        b <- surv_pvalue(fit)
        # 输出pvalue of logrank test
        write.table(t(c(x,b$pval)),file="./pvalue.of.survivaldata.csv",
                    sep=",",append=T,col.names=F,row.names=F)
        # 输出 风险事件表
        write.table(x,file="./risktable.of.survivaldata.csv",
                    sep=",",append=T,col.names=F,row.names=F)
        write.table(a$data.survtable,file="./risktable.of.survivaldata.csv",
                    sep=",",append=T,col.names=T,row.names=F)
        # 输出KMplot
        png(paste("./",x,"_survival.png",sep = ""))
        print(a)
        dev.off() 
      })
  }
}

到了这里,关于TCGA数据批量运行Coxph函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 4.postman批量运行及json、cvs文件运行

    1.各个接口设置信息已保存,在collection中点击run collection 2.编辑并运行集合 集合运行时,单独上传图片时报错。需修改postman设置 可新建记事本,输入测试数据,后另存为新的文本文件, 编码格式选择utf-8 后修改文件后缀名为csv 1.新建csv格式文件,首行为变量名,数据和变量

    2024年01月22日
    浏览(40)
  • R语言批量运行

    for函数 map函数 apply函数 for 循环结构 for循环单个例子: for循环实战例子: 参考链接:https://mp.weixin.qq.com/s/9yJ3CTHp57_loIRXgRU0DA

    2024年02月17日
    浏览(74)
  • 新版TCGA表达矩阵1行代码提取2.0版

    配合视频教程使用更佳:【1行代码提取6种TCGA表达矩阵和临床信息】 https://www.bilibili.com/video/BV12R4y197Ne/?share_source=copy_webvd_source=abc21f68a9e2a784892483fd768dbafa 之前写了一个脚本,可以让大家1行代码提取6种类型的表达矩阵以及对应的临床信息。 但是很多人完全看不见注意事项或者

    2024年02月01日
    浏览(35)
  • TCGA下载和表达矩阵整理:最适合初学者的教程

    本文首发于公众号: 医学和生信笔记 “ 医学和生信笔记 ,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。 这篇推文适合初学者看,大佬酌情阅读! 从打开网址开始教

    2023年04月08日
    浏览(102)
  • TCGA_联合GTEx分析1_得到表达矩阵.tpm

    一、下载数据 共要下载 三个数据 ,分别为 表达矩阵、样本信息、注释信息 进入网站:UCSC Xena 点击 “Launch Xena” ,选择 “DATA SETs” 点击 “GTEX(11 datasets)” 下载框中的两个数据,上面一个是 表达矩阵 ,下面一个是 样本信息。 还差一个 注释信息 ,下载地址:https://to

    2023年04月17日
    浏览(29)
  • IDEA中run Dashboard面板如何出现?实现批量运行微服务

    目录 前言 一、应用场景 在我们使用微服务做架构的时候,会出现多个工程模块同时启动,所以如果要启动多个服务的话,那如何查看控制台呢? 二、查看idea中是否有service 2.1添加service实现run Dashboard面板  2.2没有service情况 1:需要找到自己的项目路径下的 -------------------》

    2024年02月03日
    浏览(44)
  • 自定义函数 | R语言批量计算组间差值

       为了处理两列或者多列以及多变量重复样本间的组合差值,编了一个函数进行批量处理。今天与大家分享 DailyTools包 中我编写的一个 cal_repeat 函数。 为了实现2列变量重复样本的组合差值计算,如图所示: 这是y的三个重复值与x的三个重复值组合做差,得出9个新的差值。

    2023年04月22日
    浏览(35)
  • Python批量调整Word文档中的字体、段落间距及格式python调用函数批量调整word格式

        最近关于批处理格式的问题我查了很多资料,但是都没有找到自己想要的答案。 接上期,上篇博文我简单介绍了python操作Word的一些基本操作,本篇重点介绍如何批量将python中的文字导入到Word中,评设置其字体字号、间距、样式等。 Python读写word文档 用python 处理docx文档

    2024年02月13日
    浏览(48)
  • Mybatis-Plus 自定义mapper批量新增修改函数

    version MybatisPlusConfig CustomizedSqlInjector InsertBatchMethod UpdateBatchMethod RootMapper 使用方式 mapper接口实现自定义的RootMapper,即可调用批量新增修改函数

    2024年02月12日
    浏览(53)
  • c++函数模板和运行机制

    c++提供了函数模板(function template.)所谓函数模板, 实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。 凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在

    2024年04月22日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包