zl程序教程

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

当前栏目

【数据处理】如何分割GTEx/TCGA-PanCancer数据并批量保存呢?

批量数据 如何 数据处理 保存 分割 TCGA
2023-06-13 09:15:24 时间

为什么要分割GTEx数据

GTEx数据库(https://gtexportal.org/home/datasets)中有人体各个器官和组织的转录组。之前的有关ACE2教程,都是用这个数据库中的数据完成的。当然数据是开放下载的,Xena研究机构提供了标准化以后的数据(下载链接是https://toil.xenahubs.net/download/gtex_RSEM_gene_tpm.gz, https://toil.xenahubs.net/download/GTEX_phenotype.gz )这个数据下载解压以后有大小有3G+,一般笔记本是无法打开的,用内存大一点的服务器读入也需要一段时间。这个也成为很多小伙伴使用这个数据库的痛点。看过下面这些画图教程的小伙伴应知道:

【画图】冠状病毒结合的宿主细胞受体ACE2在人组织中的表达情况

【画图】ACE2在TCGA肺癌数据的表达情况(请不要过度解读这个图的结果!)

【画图】与新冠状病毒结合的ACE2基因在人肺组织功能预测分析

【画图】与COVID-19/SARS-CoV-2/2019-nCoV病毒结合ACE2基因的表达在人肺组织中与那些基因表达相关?

【画图】与ACE2基因表达相关的那些事——如何批量展现相关性的细节?

教程里使用的是肺组织的数据,那么这个数据是如何分割的呢?

代码

load("./GTExdata.rda")
GTEx_phenotype_sub_split<-split(GTEx_phenotype_sub,GTEx_phenotype_sub$Tissue)
GTEx_Tpm_split<-list()
colnames(GTEx_Tpm)<-stringr::str_replace_all(colnames(GTEx_Tpm),"[.]", "-")
GTEx_Tpm_split<-lapply(GTEx_phenotype_sub_split,
                       function(x){
                       xxxx<-GTEx_Tpm[,colnames(GTEx_Tpm)[colnames(GTEx_Tpm) %in% rownames(x)]]
                       write.csv(xxxx,file=paste(names(x),".csv",sep=""))})

就得到了上面这些文件

当然用同样的方法,我们还可以分割泛癌转录组数据

fastSave::load.pigz(file="tcga_gtex_tpm.RData")
TCGAsample_split<-split(XenaSampleClin,XenaSampleClin$Tumor)
TCGA_TpmOS_split<-list()
TCGA_TpmOS_split<-lapply(TCGAsample_split,
                         function(x){
                           xxxx<-TCGAxenaExpOS[rownames(x),]
                           write.csv(xxxx,file=paste(names(x),".csv",sep=""))})

对了,这个泛癌数据是是带有生存时间与生存时间的数据。

素材:

代码不难,用split+lapply就实现了,主要是那两个Rda文件太大传到网盘太费劲,大家可以自行到官网下载。