小白必会之: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

image

Step2:点击Access TCGA Data进入数据存储网站GDC

image

Step3:点击Cohort Builder

image

GDC只是一个数据存储网站,因此不仅有TCGA的数据存储在这里,其他项目比如 APOLLO等等的数据也都收录在GDC中

Step4:在program中点击more选择TCGA项目,在project中选择不同癌种项目类型,也可以根据列出的其他样本信息进一步筛选,筛选完成点击Repository

image

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文件加入购物车,点击这个购物车图标进入下一个页面

image

Step6:进入下载页面后点击左边Download Cart,下载Cart文件,点击Download Associated Data,下载clinical:tsv和Sample Sheet文件

image

下载的文件有这三个

image

Clinical文件解压后包含每个样本的临床信息

image

Cart文件解压后即是对应每个样本通过star对比后的gene_counts文件,一个样本一个文件夹

image

sample_sheet文件包含对应Cart解压后文件夹和样本对应的信息

image

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
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>