百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

生存分析看完这篇就够了(R语言代码+线上工具)

haoteby 2025-05-27 14:16 7 浏览

尔云间 一个专门做科研的团队

云生信学生物信息学 关注我们

啥是生存分析

生存分析侧重于开发诊断和预后模型,以分析协变量对感兴趣事件结果的影响。例如疾病研究中的死亡或疾病复发。在临床试验中,发生事件的时间通常用生存时间来表示。用于预测生存时间的协变量通常包括临床特征,例如年龄、疾病状态和治疗类型。而分子特征(如基因表达)和遗传特征(如基因突变)越来越多地包含在协变量集中。

现在小云就以ALKBH5为协变量,以LUAD的存活为关注事件进行生存分析

数据下载自
htps://xenabrowser.net/datapages/


R语言完成生存分析

代码如下

rm(list=ls());gc();
setwd("C:/22SHB021F/")


#载入R包
library(tinyarray)
library(survival)
library(cutoff)
library(ggpubr)
library(survminer)
library(survival)
#读取表达数据
data.exprs <- read.table("TCGA-LUAD.htseq_fpkm.tsv")
#ENSG00000091542.8 ALKBH5
#提取ALKBH5表达数据
ALKBH5<-data.exprs[c(1,57591),]
ALKBH5<-t(ALKBH5)
ALKBH5<-as.data.frame(ALKBH5)
names(ALKBH5)<-c("sample","ALKBH5")
ALKBH5<-ALKBH5[-1,]
#读取临床数据
clin <- read.table("TCGA-LUAD.survival.tsv",header = T)
#链接表达数据与临床数据
df2<-merge(ALKBH5,clin,by="sample")
df2$ALKBH5 <- as.numeric(df2$ALKBH5)
df3 <- read.table("df3.CSV",sep=",",header = T)
df3 <- read.table("surv.data.csv",sep=",",header = T) #EXCEL去除正常样本




#最佳截断
res.cut <- surv_cutpoint(df3, time = "OS.time", event = "OS", variables = "ALKBH5") 
med <- res.cut$cutpoint$cutpoint
df3[,ncol(df3)+1] <- ifelse(df3[,4] >= med, "High", "Low")


write.table(df3, file = "df4.csv", append = FALSE, quote = FALSE, sep = ",",row.names = TRUE,
            col.names = TRUE)


# 建模
fit <- survfit(Surv(OS.time, OS)~V5, data=df3) # 根据表达建模


# 显示P value
surv_pvalue(fit)$pval.txt
# 画图
ggsurvplot(fit,pval=TRUE)


a<-ggsurvplot(fit,legend.title = "Expression",palette = c('red','black',"blue","green"), 
              pval = TRUE,
              risk.table = TRUE,
              tables.height = 0.2,
              tables.theme = theme_cleantable(),
              xlab='Time(days)')


a



在线工具完成生存分析

不熟悉R语言的话,我们也可以使用 北京大学张泽民教授实验室开发的GEPIA(Gene Expression Profiling Interactive Analysis),基因表达谱数据动态分析网页工具

http://gepia.cancer-pku.cn/

输入框键入感兴趣的基因 点击survival analysis


选择感兴趣的疾病数据集,我这里选的LUAD

点击plot,便可出图

但是要注意GEPIA无法使用最佳截值,并且它的样本是筛选过的,与我们直接从TCGA数据库下载的有所不同,因此结果会有差异。


小云把两种方法整理好了,客官想用哪种用那种,能做出结果就皆大欢喜

相关推荐

R数据分析:双因素方差分析与交互作用检验

Two-wayANOVAtestisusedtoevaluatesimultaneouslytheeffectoftwogroupingvariables(AandB)...

R数据分析:用R语言做meta分析

这里以我的一篇meta分析为例,详细描述meta分析的一般步骤,该例子实现的是效应量β的合并...

生存分析看完这篇就够了(R语言代码+线上工具)

尔云间一个专门做科研的团队云生信学生物信息学关注我们...

用R语言画图

R语言中离群值的识别、描述、绘制与移除

摘要:统计学中离群值被定义为离开大部分观测较远的样本点,多数是由于测量误差而产生。因此,数据分析中离群值的识别和移除(如有必要)是很重要的一个步骤。鉴定离群值的方法有很多种,包括基于标准差的方法和基于...

R语言、RStudio的下载、安装与使用

本文介绍R语言及其集成开发环境...

[R语言] R语言快速入门教程

本文主要是为了从零开始学习和理解R语言,简要介绍了该语言的最重要部分,以快速入门。主要参考文章:R-TutorialR语言程序的编写需要安装R或RStudio,通常是在RStudio中键入代码。但是R...

看完这个「R语言课程」合集,我发现R语言也不过如此…

小料君看到一个有趣的问答...

在R语言中使用正则表达式

有时候我们要处理的是非结构化的数据,例如网页或是电邮资料,那么就需要用R来抓取所需的字符串,整理为进一步处理的数据形式。R语言中有一整套可以用来处理字符的函数,在之前的博文中已经有所涉及。但真正的...

附代码|详解R语言的高级数据结构

有时数据需要比向量更复杂的存储方式。幸运的是,R软件提供了很多的数据结构。常见的有数据框(data.frame)、矩阵(matrix)、列表(list)以及数组(array)。数据框类似于电子表格,矩...

R语言实战—自学笔记—向量

第2章创建数据集2.1数据集的概念数据集:由数据构成的一个矩形数组,行表示观测,列表示变量。...

R语言从入门到精通:Day7

原创小浣熊科研猫是时候关注我们一波了在向reviewer或者导师展示自己的统计分析结果时,一张图往往顶得上千言万语;在刚接触到数据时,图也能帮助我们发现数据中潜在的模式或者其中的异常值,这两个例子...

一文教你学会维恩图的绘制——R语言

背景介绍维恩图用于展示在不同的事物群组(集合)之间的数学或逻辑联系,尤其适合用来表示集合(或)类之间的“大致关系”,它也常常被用来帮助推导(或理解推导过程)关于集合运算(或类运算)的一些规律。通常每个...

R语言介绍

一、R语言介绍...

R语言的一些常见初级基本操作

基本概念:在R语言里操作和接触的所有东西都称作对象(object)。对象有很多种类可以包含各种类型的数据。R语言里所有的东西都被称为对象,R语言中常见的数据类型有几下几种,分别是字符型(cha...