TCGA的数据可以通过API访问, 每个数据都有对应的多个属性,比如文件id(file_id), 病人编号(case_id以及barcode),case_id 和file_id 都是采用的UUID进行标记, barcode即submitter_id.
在GDC的首页选中一些DNA甲基化数据,如下:
可以看到数据包含了一个Cases, 两个Files,这里面选择的项目是TCGA-COAD,这是来自结肠癌的一个病人的数据结果。
通过下载这个Manifest文件(红圈标记), 得到一些数据的id信息,文件名信息以及,primary_site信息(肿瘤的发生部位),肿瘤也会发生转移,可以通过自定义查询API的字段去获取, 以下是根据case_id查询primary_site 以及barcode (submitter_id)的用法:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import requests
import json
cases_endpt = 'https://api.gdc.cancer.gov/cases'
fields = [
"submitter_id",
"case_id",
"primary_site",
"disease_type",
"diagnoses.vital_status"
]
field = ",".join(fields)
filters = {
"op": "in",
"content":{
"field": "case_id",
"value": ["dde411b2-5d2b-4638-8149-89bc1eb3c7ad"]
}
}
params = {
"filters": json.dumps(filters),
"fields": field,
"format": "TSV",
"size": "100"
}
response = requests.get(cases_endpt, params = params)
print(response.content)
如果要根据manifest文件中的file_id 查询case_id以及barcode 该怎么做呢?
Manifest示例文件如下:
id filename md5 size state
25e8048f-1601-4d1f-9d1a-4c9f002d9365 jhu-usc.edu_COAD.HumanMethylation450.3.lvl-3.TCGA-AA-3697-11A-01D-1721-05.gdc_hg38.txt083148166f7c947387a23ca9a125df0e 141289374 released
3a42822b-9c71-4663-ab02-8d140f8935a6 jhu-usc.edu_COAD.HumanMethylation450.3.lvl-3.TCGA-AA-3697-01A-01D-1721-05.gdc_hg38.txt d453729be73e7300e8876ac2aa45e775 141289883 released
可以看到,第一列是file_id, 也可以采用API,python的代码如下:
import requests
import json
def get_paras_filter_fileID(file_ids):
params ={
"filters":{
"op":"in",
"content":{
"field":"files.file_id",
"value":file_ids
}
},
"format":"TSV",
"fields":"file_id,file_name,cases.case_id,cases.submitter_id,cases.samples.sample_id,cases.samples.submitter_id",
"size":len(file_ids)
}
return params
def saveFile(file_ids):
out = open("test_barcodes_id.txt", 'w')
files_endpt = "https://portal.gdc.cancer.gov/auth/api/files"
params = get_paras_filter_fileID(file_ids)
response = requests.post(files_endpt, json = params)
out.write(response.text)
out.close()
saveFile(['25e8048f-1601-4d1f-9d1a-4c9f002d9365', '3a42822b-9c71-4663-ab02-8d140f8935a6'])
这样结果就能保存在 test_barcodes_id.txt 文件中, 如下:
file_id file_name cases.0.submitter_id cases.0.samples.0.submitter_id cases.0.case_id id cases.0.samples.0.sample_id
25e8048f-1601-4d1f-9d1a-4c9f002d9365 jhu-usc.edu_COAD.HumanMethylation450.3.lvl-3.TCGA-AA-3697-11A-01D-1721-05.gdc_hg38.txt
TCGA-AA-3697 TCGA-AA-3697-11A dde411b2-5d2b-4638-8149-89bc1eb3c7ad 25e8048f-1601-4d1f-9d1a-4c9f002d9365 2121d215-5078-4273-8eb2-29273f90a361
3a42822b-9c71-4663-ab02-8d140f8935a6 jhu-usc.edu_COAD.HumanMethylation450.3.lvl-3.TCGA-AA-3697-01A-01D-1721-05.gdc_hg38.txt
TCGA-AA-3697 TCGA-AA-3697-01A dde411b2-5d2b-4638-8149-89bc1eb3c7ad 3a42822b-9c71-4663-ab02-8d140f8935a6 c8a9e194-fbb4-4cc5-8cda-665540e8acdc
如果要下载文件,可以参考以下内容:
https://docs.gdc.cancer.gov/API/Users_Guide/Python_Examples/#a-simple-download-request
barcode的前三个字段即病人的编号, 第四个字段是组织的类型,01就是实体瘤(solid tumor),11就是这个人的正常组织,A则是指这块组织的份数的编号,从A-Z, A应该是指第一份。
TSS即Tissue Source Site code
https://gdc.cancer.gov/resources-tcga-users/tcga-code-tables/tissue-source-site-codes
AA是 Colon adenocarcinoma
具体可参看官方说明:
https://docs.gdc.cancer.gov/Encyclopedia/pages/TCGA_Barcode/
来源:华为云社区 作者:benymorre