乐于分享
好东西不私藏

2026最新!!!TCGA下载方法大全

2026最新!!!TCGA下载方法大全
👇点关注不迷路👇
👆点关注不迷路👆
对于2026年最新的TCGA表达数据,旧的代码已经失效
然而作为众多肿瘤课题来说,TCGA确实是难以绕过的数据库
本篇推文针对2026年最新的TCGA数据库,来给同学们分享最新的表达数据整理方法
一步步带领同学们将TCGA的Counts、TPM、FPKM数据牢牢掌握,
并将全RNA、lncRNA、mRNA分别导出以备多种分析用途

👇方法一👇
①准备sheet文件
这是下载数据的必经之路,只有正确对应了sheet,我们才能准确地将表达矩阵整理出来。
首先我们需要访问TCGA的官网:https://portal.gdc.cancer.gov/
进入官网后,我们找到样品筛选入口
随后,在第一栏选择TCGA平台
等待页面刷新后,我们便可在第二栏中选择需要研究的肿瘤
此处以TCGA-BRCA为例
对于TCGA编号所对应的肿瘤类型,同学们可以参照下方表格进行对应
选择完毕后,我们接着访问数据存储页面
TCGA中储存着多种类型的数据,我们需要设置条件,筛选出我们需要的表达矩阵
Experimental Strategy栏目中选择RNA-Seq
Workflow Type栏目中选择STAR - Counts
Access栏目中选择open
设置好这3个限制后,所得到的便是我们需要的表达数据
最后将我们得到的数据加入购物车中(Add All Files to Cart)
进入购物车,我们将sheet文件下载
至此,我们的第一步,也是最关键的一步便完成了

②下载表达数据
这里我们利用R语言进行表达数据的下载
注:此处对网速要求较高
首先加载必备R包
library(TCGAbiolinks)library(limma)library(future.apply)library(pbapply)library(parallel)library(doParallel)library(data.table)setDTthreads(threads =detectCores())plan(multisession)source("xxdTCGAmerge.R",encoding = "utf-8")
定义我们需要下载的数据
这里我们与上面一致——TCGA-BRCA
tissue<-"TCGA-BRCA"
执行下载命令(网速要求高)
TCGAdata<-GDCquery(project = tissue,                   data.category = "Transcriptome Profiling",                   data.type = "Gene Expression Quantification")GDCdownload(TCGAdata)
下载得到的文件储存在工作路径的GDCdata文件夹中
至此,我们的表达数据便下载完成
但是,这里下载所得到的表达数据并不能直接为我们所用
我们还需将其整理为表达矩阵,才符合我们后续所有分析的标准

③整理表达矩阵
在整理之前,我们需要将刚才下载好的sheet文件复制到工作目录中
随后我们对其读取并解析
metaMatrix.RNA=read.table("gdc_sample_sheet.2026-03-06.tsv",sep="\t",header=T)names(metaMatrix.RNA)=gsub("sample_id",                           "sample",                           gsub("\\.","_",tolower(names(metaMatrix.RNA))))metaMatrix.RNA$sample_type=gsub(" ","",metaMatrix.RNA$tumor_descriptor)metaSample<-list.files(path = paste0(".\\GDCdata\\",tissue,"\\Transcriptome_Profiling\\Gene_Expression_Quantification"))samemeta<-intersect(metaMatrix.RNA$file_id,metaSample)metaMatrix.RNA<-metaMatrix.RNA[metaMatrix.RNA$file_id %in% samemeta,]
剔除重复样品并保留原发肿瘤数据
metaMatrix.RNA <- xxdTCGAmergeDuplicate(metaMatrix.RNA)metaMatrix.RNA <- xxdTCGAmergeSampleType(metaMatrix.RNA)
整理并导出表达矩阵
lapply(c("STAR","FPKM","TPM"),function(exptype){  namestype<-ifelse(exptype=="STAR","Counts",ifelse(exptype=="FPKM","FPKM","TPM"))  RNA_seq<-xxdTCGAmerge(metadata=metaMatrix.RNA               path=paste0(".\\GDCdata\\",tissue,"\\Transcriptome_Profiling\\Gene_Expression_Quantification"),                data.type="RNAseq",               mRNA_expr_type=exptype,               symbol = T,               RNA_type=T)  genes=RNA_seq[,1]  RNA_seq_exp<-RNA_seq[,3:ncol(RNA_seq)]  RNA_seq_exp=data.matrix(RNA_seq_exp)  rownames(RNA_seq_exp)<-genes  RNA_seq_exp=avereps(RNA_seq_exp)  RNA_seq_exp=as.data.frame(RNA_seq_exp)  fwrite(file = paste0("TCGA_",namestype,"_ALL.txt"),RNA_seq_exp,sep = "\t",quote = F,row.names = T)  lapply(c("protein_coding","lncRNA"),function(startype){    RNAtype <- rownames(RNA_seq[RNA_seq[,"type"] %in% startype,])    namesRNA<-ifelse(startype=="protein_coding","mRNA","lncRNA")    RNA_seq_RNAtype=RNA_seq_exp[RNAtype,]    fwrite(file = paste0("TCGA_",namestype,"_",namesRNA,".txt"),RNA_seq_RNAtype,sep = "\t",quote = F,row.names = T)  })})
最后我们便得到了Counts、FPKM、TPM的
全RNA、mRNA、lncRNA数据
至此,第一种方法的TCGA数据整理便圆满结束
同时,此方法也有一个较为明显的短板——网络要求高,有时候下载表达数据需要下一整天

👇方法二👇
使用多线程软件下载表达数据
该软件相较于上述方法的下载速度翻了许多倍,对网络要求较低,几分钟便可将表达数据下载完毕
我们同样一步一步进行操作
①准备sheet文件
sheet文件的准备与方法一相同,这里不再进行赘述。
②下载表达数据
双击运行我们的多线程下载器
选择数要下载的数据类型为“表达数据(RNA-Seq)”
随后进行癌症类型的选择,这里我们依旧以TCGA-BRCA为例
选择完毕后,我们进行在线ID的获取,获取完毕后便可进行直接下载
注:直接下载会有不稳定提示,实测无影响,点击“是”即可
可以看到,下载速度已经顶着宽带的上限在跑,TCGA-BRCA的数据2分钟就已下载完毕
下载得到的文件储存于GDC文件夹中
③整理表达数据
整理之前我们同样需要将sheet文件复制到工作路径中
加载必备R包
library(limma)library(future.apply)library(pbapply)library(parallel)library(doParallel)library(data.table)setDTthreads(threads =detectCores())source("xxdTCGAmerge.R",encoding = "utf-8")
设定要研究的肿瘤类型
tissue<-"TCGA-BRCA"
读取并解析sheet文件
metaMatrix.RNA=read.table("gdc_sample_sheet.2026-03-06.tsv",sep="\t",header=T)names(metaMatrix.RNA)=gsub("sample_id",                           "sample",                           gsub("\\.","_",tolower(names(metaMatrix.RNA))))metaMatrix.RNA$sample_type=gsub(" ","",metaMatrix.RNA$tumor_descriptor)metaSample<-list.files(path = paste0(".\\GDC\\",tissue))samemeta<-intersect(metaMatrix.RNA$file_id,metaSample)metaMatrix.RNA<-metaMatrix.RNA[metaMatrix.RNA$file_id %in% samemeta,]
保留唯一原发样品
metaMatrix.RNA <- xxdTCGAmergeDuplicate(metaMatrix.RNA)metaMatrix.RNA <- xxdTCGAmergeSampleType(metaMatrix.RNA)
整理表达矩阵
lapply(c("STAR","FPKM","TPM"),function(exptype){  namestype<-ifelse(exptype=="STAR","Counts",ifelse(exptype=="FPKM","FPKM","TPM"))  RNA_seq<-xxdTCGAmerge(metadata=metaMatrix.RNA               path=paste0(".\\GDC\\",tissue),                data.type="RNAseq",               mRNA_expr_type=exptype,               symbol = T,               RNA_type=T)  genes=RNA_seq[,1]  RNA_seq_exp<-RNA_seq[,3:ncol(RNA_seq)]  RNA_seq_exp=data.matrix(RNA_seq_exp)  rownames(RNA_seq_exp)<-genes  RNA_seq_exp=avereps(RNA_seq_exp)  RNA_seq_exp=as.data.frame(RNA_seq_exp)  fwrite(file = paste0("TCGA_",namestype,"_ALL.txt"),RNA_seq_exp,sep = "\t",quote = F,row.names = T)  lapply(c("protein_coding","lncRNA"),function(startype){    RNAtype <- rownames(RNA_seq[RNA_seq[,"type"] %in% startype,])    namesRNA<-ifelse(startype=="protein_coding","mRNA","lncRNA")    RNA_seq_RNAtype=RNA_seq_exp[RNAtype,]    fwrite(file = paste0("TCGA_",namestype,"_",namesRNA,".txt"),RNA_seq_RNAtype,sep = "\t",quote = F,row.names = T)  })})
最终也同样得到了Counts、FPKM、TPM的
全RNA、mRNA、lncRNA数据
至此,2026年最新TCGA数据的下载方法就给同学们分享到此
代码及示例文件于文末获取

👇点关注不迷路👇
👆点关注不迷路👆

方法一代码及示例文件:

链接: https://pan.baidu.com/s/1zcbfxd3Tdo5l4PeQti8WQw?pwd=mtxs 提取码: mtxs 

方法二软件、代码、示例文件:

无法复制链接的同学可点击左下角的“阅读原文”访问网盘