TCGA数据集介绍及数据下载指南(新手友好篇)
目录
一、TCGA数据集介绍
1.1 数据集介绍
TCGA(The cancer genome atlas,癌症基因组图谱)由 National Cancer Institute(NCI,美国国家癌症研究所) 和 National Human Genome Research Institute(NHGRI,美国国家人类基因组研究所)于 2006 年联合启动的项目, 收录了各种人类癌症(包括亚型在内的肿瘤)的临床数据,基因组变异,mRNA表达,miRNA表达,甲基化等数据,是癌症研究者很重要的数据来源。
1.2 File介绍
File目录下包含七类,分别是:
1.2.1 Data Category(数据类别)
等
1.2.2 Data Type(数据类型)
等
1.2.3 Experimental Strategy(实验策略)
等
1.2.4 Workflow Type(工作流类型)
等
1.2.5 Data Format(数据格式)
等
1.2.6 Platform(平台)
略
1.2.7 Access
controlled数据需要申请账号才可以下载,open数据不需要账号。
1.3 Cases介绍
Cases目录下包含11类,分别是:

1.3.1 Case ID(案例编号)
略
1.3.2 Primary Site(主要站点)
等
1.3.3 Program(程序)
等
1.3.4 Project(项目)
等
1.3.5 Disease Type(疾病类型)
等
1.3.6 Gender(性别)
1.3.7 Age at Diagnosis(诊断年龄)
略
1.3.8 Vital Status(重要状态)
1.3.9 Days to Death(死亡天数)
略
1.3.10 Race(人种)
等
1.3.11 Ethnicity(种族)
二、数据下载指南
2.1 进入官网
官网链接:https://portal.gdc.cancer.gov/
2.2 点击进入“Repository”
进入“Repository”后先看右上角“Cart”处是否为“0”,不为零的话要先清除之前下载的数据,清除方法是选择“Cart”,然后点击右下角的“Remove From Cart”。
2.3 点击“Repository”
点击“Repository”,选择需要下载的样品信息“Cases”和需要下载的文件“Files”。
【注】:在下面的部分会对Files和Cases进行介绍。
2.4 下载临床信息
(这里以结肠癌coion为例)
在下拉框中选在需要下载的内容:
然后选择需要下载的文件“Files”,这里也可以再下拉框中根据自己需要的格式进行下载
2.5 将文件添加到“Cart”
点击“Add All Files to Cart”
2.6 进入“Cart”页面
进入“Cart”页面,选择要下载的格式进行下载
2.7 进行下载
一个是「Manifest」(一个txt文本,是数据下载入口,并不是数据本身);
一个是左边的「Metadata」(这个下载之后是个json文件,是为了之后进行数据清洗作准备的);
当然也可以直接从网站上直接下载数据,但这种方式的弊端就是不稳定,数据中断时无法续传;
可以点击Download——>Cart本地下载,也可以下载Manifest文件后用官方下载工具下载,如果数据是controlled并且用官方下载工具下载,需要下载token文件作为身份验证,这里不进行详细介绍。【说明:本地下载国内可能无法下载】
把文件下载到本地后,是这个样子:
三、下载数据
官网提供的下载工具Data Transfer Tool网址:https://gdc.cancer.gov/access-data/gdc-data-transfer-tool,选择相应版本即可下载。
左侧为初始界面,右侧为UI可视化界面。
UI初始化界面如下:
选择manifest文件,点击下载即可开始下载。
UI可视化界面下载时如下:
下载完成后界面大致如下:
四、数据处理
4.1 样本名称转化为TCGA样本编号
数据下载完成后,还是一堆文件夹,接下来需要对数据进行处理。
json文件打开后,会发现每个样本名称跟它的TCGA样本编号被一个大括号所包含,形成一一对应的关系;
这里就需要利用python脚本把样本名与TCGA样本编号建立一个字典,然后进行逐一修改,代码如下:
import os
import json
#打开json文件夹;
file = open('E:/Wendy/Desktop/TEST/metadata.cart.2021-09-17.json', encoding='utf-8')
#读取json文件夹;
json_precess = json.loads(str(file.read()))
#创建空字典;
dict ={}
for i in json_precess:
print(i['file_name'])
print(i['associated_entities'][0]['entity_submitter_id'])
dict[str(i['file_name']).strip('.gz')] =i['associated_entities'][0]['entity_submitter_id']
print(dict)
#mainfest文件路径;
path ='E:/Wendy/Desktop/TEST/test'
filelist = os.listdir(path)#mainfest子路径下的所有文件列表;
for file_one in filelist:
file = path + '/' +file_one
print(file)
list = os.listdir(file)[0]
print(list)
if '.gz' in list:
olddir = file +'/' +list#原来文件名
newdir = file + '/' + dict[list.split('.gz')[0]] +'.gz'#新的文件名
os.rename(olddir,newdir)#重新命名
# olddir = os.path.join(path,file_one)
# print(olddir)
# filename =os.path.splitext(file_one)[0]
# newdir = os.path.join(path,dict[file_one])
# os.rename(olddir,newdir)名
4.2 数据合并
参考链接:
【1】http://www.yingbio.com/article-35507-199717.html
【2】https://blog.csdn.net/qq_35203425/article/details/80882988
【3】https://blog.csdn.net/weixin_42512684/article/details/89415482
【4】https://blog.csdn.net/weixin_42512684/article/details/90172633
来源:wendy_ya