zoukankan      html  css  js  c++  java
  • TCGA(三)--采用GDC API进行数据查询和获取

    TCGA的数据可以通过API访问, 每个数据都有对应的多个属性,比如文件id(file_id), 病人编号(case_id以及barcode),case_id 和file_id 都是采用的UUID进行标记, barcode即submitter_id.

    在GDC的首页选中一些DNA甲基化数据,如下:

    Screenshot 2019-06-02 at 11.34.46 AM.png

    可以看到数据包含了一个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应该是指第一份。

    barcode.png

    TSS即Tissue Source Site code

    https://gdc.cancer.gov/resources-tcga-users/tcga-code-tables/tissue-source-site-codes

    Screenshot 2019-06-02 at 1.23.29 PM.png

    AA是 Colon adenocarcinoma

    具体可参看官方说明: 

    https://docs.gdc.cancer.gov/Encyclopedia/pages/TCGA_Barcode/

    来源:华为云社区  作者:benymorre

  • 相关阅读:
    DOS命令收集
    iis6配置支持.net4.0
    正则表达式限制文本框
    剖析XML(第一讲)
    DataTime.ToString("xx") 转换
    .net面试题大汇集
    django学习笔记(一)
    django学习笔记(一)
    django学习笔记(二)
    django学习笔记(二)
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165804.html
Copyright © 2011-2022 走看看