【5.5】基因在正常和肿瘤的不同组织中的表达--GTEx/TCGA

今天接到一个小任务,分析某个基因在不同肿瘤和正常组织的表达情况。这个任务听上去就很简单,无非就是提数据,然后作图么。网上一搜,其实有很多这样的工具可以做这个事情,比如:http://gepia.cancer-pku.cn/help.html 。试用了下,功能看上去很强大,但相应的速度太慢了,于是本地来构建这样的一个分析框架。

一、数据集

TcgaTargetGtex_rsem_gene_tpm 是整合的癌症方面的数据Tcga和非癌症的数据Gtex,用rsem分析流程,表达量用tpm表示。这个数据集的行代表ensmbol id表示,可以根据gencode.v23转换成gene id; 列的名字为样本的ID ,样本具体信息可以从TcgaTargetGTEX_phenotype获得

Genotype-Tissue Expression (GTEx)

二、几个问题

2.1 如何区分正常和癌症的数据

normal 数据的定义:

  • TCGA “solid tissue normals” samples that are taken from normal tissues near the tumor
  • GTEx samples, which has expression data from normal tissue of individuals who do not have cancer

因此,选择TcgaTargetGtex_rsem_gene_tpm 的列“_sample_type”中"normal"即可

2.2 选择那个数值进行比较(expected_count、fpkm、norm_count、tpm)

所有数据集下载地址: https://xenabrowser.net/datapages/

选择的是:

TCGA TARGET GTEx (13 datasets)

RPKM( Reads per kilobase of exon per million reads mappe )和FPKM

在RNA-Seq中,最简单的定量基因表达量(gene expression)的方法就是将RNA-Seq数据比对到相应的参考序列上时,会有比对到各个基因的read数量,称为raw read counts。但是如果要比较不同样本中基因的表达量,光有raw counts是远远不够的,因为raw cread counts受到很多因素的影响,如目标基因的转录本长度(transcript length)、总的有效比对的read数量(即测序深度 sequencing depth)以及测序的偏差(sequencing bias)等等,这些因素是如何影响raw read counts的后面会有解释。那么为了将不同样本的基因表达量归一化到一个能够量化比较的标准上,科学家们采取的措施是将raw counts同时除以目标基因的外显子长度之和(也就是目标基因转录本长度)和总的有效比对的read总数。这就是RPKM的定义

RPKM = (10^6 * nr) / (L * N)

其中:

  • nr 代表比对至目标基因的read数量;
  • L代表目标基因的外显子长度之和除以1000,单位是Kb,不是bp;
  • N是总的有效比对至基因组的reads数量。

注意这里的 nr:在single-end测序中,一个read就是一个read。而在pair-end测序中,若一对paired-read 都比对上了,当做两个read;若只有一个read比对上,另一个未比对上,当做一个read计算。

类似的,FPKM的定义如下 

FPKM = (10^6 * nf) / (L * N)

其中:

  • nf 代表比对至目标基因的fragment数量;
  • L代表目标基因的外显子长度之和除以1000,单位是Kb,不是bp;
  • N是总的有效比对至基因组的fragment数量。

注意这里的 nf:在single-end测序中,FPKM将read当做fragment计算,此时FPKM和RPKM是相同的。而在pair-end测序  中,  若一堆paired-read 都比对上了,当做一个fragment。

以上是这两个量的计算方式,它们这样计算的目都是为了解决在计算RNA-seq转录本丰度的两个bias:

  1. 即便是相同表达丰度的转录本,会由于其基因长度上的差异,导致测序获得的Read(Fragment)数不同。因为在测序时,随机抽样的情况下,序列较长的转录本被抽到的概率更大,测得的Read(Fragment)数越多。
  2. 由测序文库的不同大小而引来的差异。即同一个转录本,其测序深度越深,通过测序获得的Read(Fragment)数就越多。

FPKM和RPKM通过同时除以L(转录本长度)和N(有效比对的Read(Fragment)总数)的办法,最终将不同样本(或者同个样本在不同条件下)的转录本丰度归一化到一个能够进行量化比较的标准上。

tpm (Transcripts per million)

以上一切看起来都很合理

但是!!!

既然说了测序获得的read(fragment)受到基因长度的影响,RPKM和FPKM计算中也去除了目标基因长度的影响,但是除以N时没有考虑到这个影响,N是总的有效比对的read(fragment),它同样会受到各个转录基因长度(distribution of transcript lengths)的影响。所以FPKM/RPKM是不准确的。那么有没有一个统计量能解决这个问题呢?有!那就是TPM

TPMi={( nr/Lr )*10^6 } / sum( nr/Lr+……..+ nm/Lm )

注:

  • nr:mapping到目标基因上的read数;
  • Lr:目标基因的外显子长度的总和。

在一个样本中一个基因的TPM:先对每个基因的read数用基因的长度进行校正,之后再用校正后的这个基因read数(nr/Lr)与校正后的这个样本的所有校正后的read数(sum( nr/Lr+……..+ nm/Lm ))求商。

没错!TPM不是除以有效比对的read总数,而是除以经过基因长度归一化后的有效比对的read总数,即归一化后的测序深度。

因此,TPM在计算不同样本的基因表达量比较时,是更加准确的统计量。

其他

  • ‘RSEM normal_count’ dataset is normalized by the upper quartile method
  • ‘RSEM expected_count (DESeq2 standardized)’ dataset is by DESeq2 normalization.

三、作图

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn