TCGA数据库CNV数据处理小记

杯杯杯杯具 2019-11-18 PM 487℃ 0条

最近在使用TCGA的CNV数据,遇到了一些缺乏经验导致的问题,在这里记录一下,如果能够帮到别人就更好了。

nocnv是什么?

通常,一个case会对应多个文件,其中一半文件的文件名包含「nocnv」,我们通过这个特征可以将文件分为两组。这两组文件都是这个case的完整数据,其中都包含癌症样本和癌旁样本(可以通过Entity ID(TCGA Barcode格式)的14-15位来判断,详见TCGA Barcode)的CNV分段测序情况。但有无nocnv的两组文件有什么不同呢?

nocnv文件的Data Type是Masked Copy Number Segment,而无nocnv标识的是Copy Number Segment,通过查找的一些资料得知,nocnv是去除了种系差异后的数据。对于这个我的理解是相当于把上一代(或者再宽泛一点,某个人种)常出现的CNV隐去,因为这些CNV一定程度上不是由这个癌症所引起的。

Masked copy number segments are generated using the same method except that a filtering step is performed that removes the Y chromosome and probe sets that were previously indicated to be associated with frequent germline copy-number variation.

因此,通常都应使用含nocnv尾缀的文件来进行后续的分析。(嗯,一个礼拜的数据白跑了

此外,在Copy Number Variation Analysis Pipeline中可以得知nocnv文件是没有Y染色体的数据的。(真是考验程序的鲁棒性啊((

Question: How to deal with the CNV file and NOCNV file measured by Affy SNP6.0 of level 3 data in TCGA?
Question: TCGA CNV Files
Copy Number Variation Analysis Pipeline

一个case对应多个文件应该怎么处理?

一个case四个文件(癌症有无nocnv,癌旁有无nocnv)应该是最正常的情况,然而有时并非如此。曾经我是直接把它们不经处理的直接全都使用了,直到前几天组会汇报时才被指出这么处理可能会有问题,一查果然如此。

我们以TCGA-44-2665 (Case UUID: fb79c491-7b01-42ae-8369-8364e442e31b)的无nocnv的文件为例,它有7个文件,其中癌症样本4个,癌旁样本3个,如下表。

样本ID
TCGA-44-2665-01A-01D-A273-01
TCGA-44-2665-01B-06D-A273-01
TCGA-44-2665-01A-01D-0944-01
TCGA-44-2665-01A-01D-1549-01
TCGA-44-2665-10A-01D-A273-01
TCGA-44-2665-10A-01D-0944-01
TCGA-44-2665-11A-01D-1549-01

然后我们来复习一下TCGA Barcode的编码格式

barcode.png

具体哪个是什么意思我就不在这里赘述了,可以点击链接自己学习一下,这里我们要关注Sample、Analyte、Vial、Plate、Portion

  • Sample:样本类型,01-09是癌症,10-19是癌旁,具体数值对应参见Code Tables。这里我们用到了01(原发性实体瘤)和10(血源正常),因此先将TCGA-44-2665-11A-01D-1549-01去除。
  • Analyte: 分析物分子类型,D代表DNA,其他Code见Code Tables。
  • Vial:一系列患者组织的顺序,这里绝大部分样本都应该是A,B表示福尔马林固定石蜡包埋组织,已被证明用于测序分析的效果不佳,所以不建议使用。这里我们剔除TCGA-44-2665-01B-06D-A273-01
  • Plate:96孔版的板顺序,优先取「板号最大的」。
  • Portion:同属于一个患者组织的不同部分的顺序编号,同一组织会分割为100-120mg的部分,分别使用,越大越好。

这里我们还剩下五个文件,需要通过Plate和Portion来筛选,Plate这里暧昧的「板号越大越好」的说法属实难了我很久,毕竟它的值是「4-digit alphanumeric value」,例如A2731549,我该如何比较它的大小呢?

查了很多资料无果,突然脑子转过弯来了,觉得自己造轮子有点傻,不如看看有没有现成的实现。然后,一搜就搜到了。。。使用Python包gdctools的choose_file即可把一个list格式的TCGA Barcodes转为(selected, ignored)的tuple。嗯,就这么简单。。。

from gdctools.gdc_loadfile import choose_file
choose_file(['TCGA-44-2665-01A-01D-A273-01', 'TCGA-44-2665-01B-06D-A273-01', 'TCGA-44-2665-01A-01D-0944-01', 'TCGA-44-2665-01A-01D-1549-01'])

# ('TCGA-44-2665-01B-06D-A273-01', ['TCGA-44-2665-01A-01D-A273-01', 'TCGA-44-2665-01A-01D-1549-01', 'TCGA-44-2665-01A-01D-0944-01'])

然而,我还是想知道怎么判断的「板号最大」,于是看了看代码,看得我心情复杂,代码见gdc_loadfile.py#L491-L540,嗯就是简单的比较两个字符串的ASCII大小,wtmsb。

TCGA Barcode Documentation
TCGA Code Tables
TCGA样本命名详解-Mr番茄蛋@CSDN

如何归类ESCA和CESC的ADC和SCC?

  1. 直接使用GDC的筛选功能
    在Cases选项卡下,有「Disease Type」筛选项,选择「squamous cell neoplasms」或者「adenomas and adenocarcinomas」即可筛出SCC或ADC的数据,之后再将其加入Cart下载即可。
  2. 使用Clinical数据进行处理
    当然,也有一个微微有点绕弯子的方法,将所有的数据都加入Cart,在Cart页面会找到下载Clinical的按钮,下下来JSON文件,里面的diagnoses->0->primary_diagnosis即为指定case的类型,通过case_id即可对应file并进行后续的处理。

基因名(gene_name)是唯一的吗?

经过简单的统计,有111个基因名存在重名情况(使用GRCh38.76的注释文件)。因此,用基因名作为唯一标识是不可靠的。这里建议使用gene_id这个唯一标识来解决这个问题。

标签: TCGA, 生信

非特殊说明,本博所有文章均为博主原创。

评论啦~