美文网首页
选择性提取Xena中所需数据

选择性提取Xena中所需数据

作者: 木制品_1125 | 来源:发表于2021-09-10 09:57 被阅读0次

一、前言

TCGA的数据的研究套路目前已经有很多了,而Xena是一个综合了TCGA、GTEx、TARGET等多个数据库的工具,非常方便使用。其中UCSC Toil RNA-seq Recompute、Pan-Cancer Atlas Hub等亚集中的数据量非常可观,对于没有服务器或性能较好的计算机的学生或研究人员来说,下载后的数据占据空间比较大,读取数据很慢,甚至可能导致计算机崩溃,这篇文章就记录下如何用R语言读取压缩数据,如何按照自己的需求提取所需的列。

二、读取压缩包

我们下载的Xena数据可能像下图这样:

F1.jpg

压缩包比较大,解压后的数据更大,非常占据储存空间,gzfile可以读取由bzip2, xz、lzma等压缩的文件,可以通过"r","w","a"设置读写添加模式等。示例如下:


gz <- gzfile("F://xenaData/TCGA/pancancer/tcga_RSEM_gene_fpkm.gz","rt")

rnaseq <- read.table(gz,sep = "\t",header = T,check.names = F)

close(gz)

使用完后记得使用close()关闭。

二、读取数据特定列

就像刚刚读取的压缩包数据一样,内容包括6万行*1万列,如果有服务器或高性能的计算机,那么您可以直接忽略下面的内容。

如果没有,那么我们可以使用read.table里面的参数来读取特定的列,这个参数是colClasses,这是一个指定每列数据格式的参数,但是如果某一列的格式被设定为"NULL",那么读取数据时则会忽略这一列。示例如下:


gz <- gzfile("F://xenaData/TCGA/pancancer/tcga_RSEM_gene_fpkm.gz", "rt")

rnaseq <- read.table(gz, nrows = 2, sep = "\t", header = T, check.names = F)  ##先获取数据的前两行用以查看数据类型

close(gz)

classes <- sapply(rnaseq, class)  ##获得rnaseq每一列的数据类型

classes[!(names(classes) %in% c("sample"))] <- "NULL"  ##将除sample这一列以外的其他列设置为NULL

gz <- gzfile("F://xenaData/TCGA/pancancer/tcga_RSEM_gene_fpkm.gz", "rt")

rnaseq <- read.table(gz, sep = "\t", header = T, check.names = F, colClasses = classes)  ##再次单独读取sample这一列数据

close(gz)

本文所记为防止遗忘,如果错误,敬请指正。

相关文章

网友评论

      本文标题:选择性提取Xena中所需数据

      本文链接:https://www.haomeiwen.com/subject/afpgwltx.html