查看原文
其他

使用TCGAbiolinks批量下载TCGA的表达量数据。

果子 果子学生信 2023-06-15

TCGA的数据下载,需要去GDC,使用官方工具,
下载的数据每个样本都在单个文件夹中,需要一系列的处理,才能得到表达矩阵。
而数据分析和挖掘就是从表达矩阵开始的。

以往我写贴讲课都是用的手工的方法,目的是为了教会大家批量操作,而批量是我学习编程到现在收货最大的部分。
还要一个工具,集TCGA数据下载处理可视化为一身,就是TCGAbiolinks。
但是因为网络原因,我重来没用过。直到有一天,唐医生帮我彻底解决了网络问题,我才能像一个正常生信工作人员一样生活。
我现在无论是SRA,还是github,都没有网络限制了。

然后我就用上了TCGAbiolinks,最终我的评价就是,

TCGAbiolinks用来下载数据十分方便,用来分析和可视化达不到要求。

现在以下载是RNAseq的数据为例,写一个批量的呈现,下载所有33个癌症的数据变成Rdata格式,并分享。

对包和项目的探索

有哪些项目的数据可以下载呢?

library(TCGAbiolinks)
projects <- getGDCprojects()

这个返回的表格列举的可以下载的项目,其中每个项目都还有很多组学可以下载。

提取TCGA的项目

library(dplyr)
projects <- projects %>% 
  as.data.frame() %>% 
  select(project_id,tumor) %>% 
  filter(grepl(pattern="TCGA",project_id))

返回的是33行。

测试单个项目的数据下载

我们以卵巢癌为例,下载表达量数据。
卵巢癌的代号是TCGA-OV
表达矩阵获取四部曲
第一,使用GDCquery函数来查询下载信息

query.exp <- GDCquery(project = "TCGA-OV"
                  data.category = "Transcriptome Profiling",
                  data.type = "Gene Expression Quantification",
                  workflow.type = "HTSeq - Counts")

第二,使用GDCdownload函数来下载数据

GDCdownload(query.exp)

下载的数据,会默认在当前工作目录创建GDCdata文件夹,并存放在里面。

第三,使用GDCprepare批量读取数据

pre.exp <- GDCprepare(query = query.exp, save = TRUE, save.filename = "TCGA_OV_RNAseq.Rdata")

此时如果想把读取的数据保存为Rdata,下次直接加载,就把
save参数设置为TRUE
save.filename给一个名称。
这时候,这个pre.exp是个对象,需要从里面提取表达量的信息

第四,使用assay函数提取表达量信息

countsdata <- SummarizedExperiment::assay(pre.exp)

现在就获得了行是基因,列是样本的表达量矩阵啦

批量下载TCGA的数据

能做一个就能做多个,能做多个的前提是能做一个,而且要清晰定义一次操作的所有步骤。

上面四步已经做完了,现在可以批量做了。

projects这个表达已经获取到了,循环他就可以。

dir.create("TCGA_RNA_data")
for (i in 1:nrow(projects)) {
  ## 0.运行信息
  print(paste0("Downloading number ",i,",project name: ",projects$project_id[i]))
  ## 1.查询信息
  query.exp = GDCquery(project = projects$project_id[i], 
                        data.category = "Transcriptome Profiling",
                        data.type = "Gene Expression Quantification",
                        workflow.type = "HTSeq - Counts")
  ## 2.正式下载
  GDCdownload(query.exp)
  ## 3.多个数据合并
  pre.exp = GDCprepare(query = query.exp)
  ## 4.提取表达量数据
  countsdata = SummarizedExperiment::assay(pre.exp)
  ## 5.保存数据
  save(countsdata,file = paste0("TCGA_RNA_data/",projects$project_id[i],".Rdata"))
}

经过一段时间的等待,下载完毕,

总共大概4个G,自己可以试试这个技能,也可以回复“果子批量TCGA”自助获取数据。

拿到表达量矩阵能做什么事情?

就好比,你自己做了1万个样本的转录组数据。
能做的事情非常多。
很有诚意!人人可做的转录组数据下游分析
下游分析可以参考这个GEO芯片的,是通用的技能。
来完成你的生信作业,这是最有诚意的GEO数据库教程

非编码RNA可以提取一波
GTF文件有什么用啊?别的不谈,最起码能提lncRNA
免疫浸润可以来一套
视频课程:TCGA数据免疫浸润的量化方法
量化免疫浸润时CIBERSORT的注意事项。
ssgsea算法在量化免疫浸润时的运用以及原理
WGCNA做起来:
视频课程:WGCNA,多样本,多分组,多临床信息的数据挖掘利器。
WGCNA是数据挖掘的大熔炉!
WGCNA的分析中为什么要挑选软阈值?
WGCNA有了相关性矩阵为什么还要计算拓扑矩阵?
WGCNA分析是如何找出基因模块的?
WGCNA中的eigengene有什么重要意义呢?

大部分你能想到的分析,最终都要依靠表达量分析。。。

怎么学习批量操作?

咋们再这里也算是展示了写for循环批量的过程,你如果想要深入了解批量,还可以看看这些
手工读取TCGA,硬气。
把GDC下载的多个TCGA文件批量读入R
这是个很好的视频教程,我们以后肯定会出一个更详细的视频教程
视频小教程_R语言中的批量操作

学会了批量,那就用起来,来看看这些高能使用吧。
跟Nature一起学习TCGA,GTEx和CCLE数据库的使用
教程拓展:手上在研究的基因在各种组织,癌症,细胞系中的表达量。
高能推荐!批量在多个组织中找出跟你的分子最相关的基因。

单基因批量相关性分析的妙用
又是神器!基于单基因批量相关性分析的GSEA

其他的感兴趣的,就自己在公众号找来看看,随处都是。。
任何一个技能,搭配上批量,就是另外一个技能。。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存