小白必会之:2024最新TCGA数据下载与处理手把手教学
1.TCGA数据库介绍
TCGA是TheCancer Genome Atlas Program的简写,即癌症基因组图谱计划,它是一项2006年开始由National Cancer Institute(NCI,美国国家癌症研究所) 和 National Human Genome ResearchInstitute(NHGRI,美国国家人类基因组研究所)启动的项目,TCGA目前收集了超过2.5pb的基因组、表观基因组、转录组和蛋白质组数据,并向全世界研究人员公开使用。
2.TCGA数据下载
Step1:必应搜索TCGA,认准官网地址并进入
TCGA官网地址:https://www.cancer.gov/ccg/research/genome-sequencing/tcga
Step2:点击Access TCGA Data进入数据存储网站GDC
Step3:点击Cohort Builder
GDC只是一个数据存储网站,因此不仅有TCGA的数据存储在这里,其他项目比如 APOLLO等等的数据也都收录在GDC中
Step4:在program中点击more选择TCGA项目,在project中选择不同癌种项目类型,也可以根据列出的其他样本信息进一步筛选,筛选完成点击Repository
TCGA不同癌症project名称缩写详见官网说明:
https://gdc.cancer.gov/resources-tcga-users/tcga-code-tables/tcga-study-abbreviations
Step5:进入Repository后进一步进行数据类型筛选,Experimental Strategy选择RNA-seq,Data Type选择Gene Expression Quantification,然后点击Add All Files to Cart,此时上方购物车图标会显示已将524个要下载的gene_counts文件加入购物车,点击这个购物车图标进入下一个页面
Step6:进入下载页面后点击左边Download Cart,下载Cart文件,点击Download Associated Data,下载clinical:tsv和Sample Sheet文件
下载的文件有这三个
Clinical文件解压后包含每个样本的临床信息
Cart文件解压后即是对应每个样本通过star对比后的gene_counts文件,一个样本一个文件夹
sample_sheet文件包含对应Cart解压后文件夹和样本对应的信息
3.R进行数据清洗,获取count矩阵
直接上代码:
setwd("D:/work/bininfo/SXFX955/TCGA/TCGA-COAD/")#设置工作路径,即下载的数据的路径
library(dplyr)
# 1/. 读取metadata,获取样本信息
metadat <- read.table(file = "gdc_sample_sheet.2024-08-11.tsv",sep = '/t',header = T)
# 2/. 读取count数据
count_files <- list.files(path = ".",pattern = '*gene_counts.tsv$',full.names = T,recursive = T)
# 先来看单独的count文件长啥样
tmp_count <- read.table(count_files[1],header = T,sep = '/t',quote = "",comment.char = "#")
head(tmp_count)
# unstranded 列其实就是count值,通过查看其他文件,可以发现每个文件基因名字的顺序是一致的,所以每个文件只需要第四列就行
# 另外基因名从第五行开始,前四行需要删除,我们想要的列是第1, 2, 4列,分别是Ensembl ID,基因名字,count值
tmp_count <- tmp_count[-c(1:4),c(1,2,4)]
# 通过lapply函数批量操作
count_list <- lapply(count_files, function(x){
mtx <- read.table(x,header = T,sep = '/t',quote = "",comment.char = "#")
return(mtx[-c(1:4),4])
})
#转换成dataframe
count <- as.data.frame(count_list)
#从count_files提取FileID
filesid <- sapply(count_files, function(x){strsplit(x,'/')[[1]][3]})
names(filesid) <- NULL
#然后match函数通过filesid匹配对应的SampleID
metadat$Sample.ID[match(filesid,metadat$File.ID)]
#count矩阵列名命名为SampleID
colnames(count) <- metadat$Sample.ID[match(filesid,metadat$File.ID)]
#count矩阵行名命名为gene id,从tmp_count获取(每个文件基因id的顺序是一致的)
rownames(count) <- tmp_count$gene_id
#最后输出count矩阵
write.csv(count,file = 'TCGA_COAD_count.csv')
有了count矩阵后,后续就可以接上普通的DESeq2,edgeR等差异分析流程啦
版权声明:
作者:dingding
链接:https://www.techfm.club/p/147966.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论