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

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

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

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

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

啥是生存分析

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

现在小云就以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数据库下载的有所不同,因此结果会有差异。


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

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...