zl程序教程

您现在的位置是:首页 >  其它

当前栏目

如何合并ESTIMATEScore和生存时间

如何 时间 合并 生存
2023-06-13 09:13:01 时间

肿瘤微环境,肿瘤中免疫细胞和基质细胞的比例对预后有显着影响,在肿瘤微环境中,免疫细胞和基质细胞是两种主要类型的非肿瘤组分,并且研究表明对于肿瘤的诊断和预后评估具有重要价值。基于ESTIMATE算法计算的免疫评分和基质评分有助于肿瘤中免疫和基质成分的定量。在该算法中,通过分析免疫和基质细胞的特定基因表达特征来计算免疫和基质评分,以预测非肿瘤细胞的浸润。

ESTIMATE数据库(https://bioinformatics.mdanderson.org/estimate/)提供TCGA中多种肿瘤的StromalScore,ImmuneScore和ESTIMATEScore。

1)StromalScore

基质评分(记录肿瘤组织中基质的存在)

2)ImmuneScore

免疫评分(代表免疫细胞在肿瘤组织中的浸润)

3)ESTIMATEScore

估计分数(推断出肿瘤的纯度)

一、我们可以从TCGA下载到特定肿瘤样本的生存时间,具体可以参考

☞如何从TCGA数据库下载RNAseq数据以及临床信息(一)

☞玩转TCGA临床信息

二、我们可以从ESTIMATE数据库下载特定肿瘤的StromalScore,ImmuneScore和ESTIMATEScore。

接下来我们来合并这两部分的信息,其实思路还是很简单的。我们可以通过样本ID号来合并。

生存时间的数据如下

StromalScore,ImmuneScore和ESTIMATEScore文件如下

你会发现ESTIMATEScore文件中样本的ID号比较长,而生存时间文件中样本ID比较短,只有12位。但是如果你仔细观察你会发现,他们的前12位是可以对上的。那么我们就提取ESTIMATEScore文件中样本的前12位,然后跟生存时间里面的样本ID做比较,找到一样的ID就把免疫分值和生存时间合并起来。

下面来看看代码

#读入免疫分值文件
score=read.table("scores.txt",header=T,sep="\t")
#提取样本ID的前12位最为新的样本ID
id=substr(score$ID,1,12)
#将新ID号作为行名
rownames(score)=id

#读入生存时间文件
os=read.table("Overall_Survival_month.txt",header=T,sep="\t")
#将样本ID号作为行名
rownames(os)=os$Patient.ID
#删掉生存状态中:及后面的内容
#eg. 1:DECEASED 处理之后变成1
os$OS_STATUS=gsub(":.*$","",os$OS_STATUS)
#删掉包含NA的行
os=na.omit(os)

#取两个文件中样本的交集
comm_sample=intersect(id,rownames(os))

#合并两个文件中的信息
data=cbind(score[comm_sample,-1],os[comm_sample,c("OS_STATUS","OS_MONTHS")])
#写出结果到score_with_OS.txt
write.table(file="score_with_OS.txt",data,quote=F,sep="\t")