raw_count、tpm、fpkm、rpkm如何选择

转录组测序中常见的数据类型有:raw_count、tpm、fpkm、rpkm。本文进行简单辨析:

一、概念

1 raw_count

RNA-seq数据中,raw_count一般是指mapped到基因外显子区域的reads数目。比如说htseq,STAR,或者RSEM等NGS分析流程计算产生的counts值。其中RSEM(RNA-Seq by Expectation-Maximization),考虑到一条read 可能会匹配多个exon位置,故而其产生的为expected_count。

2 tpm

TPM(Transcripts Per Million),每100000个RNA reads,有多少个来自某基因的转录本。在计算方法上,TPM首先对基因长度进行归一化,然后再对测序深度(mRNA reads 总量)进行归一化,最终使得每个样本建库大小可以比较

基因长度归一化原因:同样表达水平下,某基因长度越长,对应得到的reads数越多。归一化后同一样本的不同基因表达水平间具有可比性;

测序深度归一化原因:不同样本的mRNA reads总量有高有底,归一化后不同样本的基因表达水平间具有可比性;

3 FPKM和RPKM

已经过时了,建议不要使用!

二、raw_count、tpm 的差异表达分析的区别

先说结论:

  • raw_count 差异表达分析:适用于 DESeq2 等大多数主流分析R包;
  • tpm 差异表达分析:log2(tpm+1)输入limma分析。

关于tpm的差异表达分析,limma包作者Gordon K. Smyth是这么说的:

In my opinion, there is no good way to do a DE analysis of RNA-seq data starting from the TPM values. TPMs just throw away too much information about the original count sizes. Sorry, but I'm not willing to make any recommendations, except to dissuade people from thinking that TPMs are an adequate summary of an RNA-seq experiment.

I see that some people in the literature have done limma analyses of the log(TPM+1) values and, horrible though that is, I can't actually think of anything better, given TPMs and existing software. One could make this a little better by using eBayes with trend=TRUE and by using arrayWeights() to try to partially recover the library sizes. Please do not take that as a recommendation though!

也就是说用limma分析 log2(tpm+1),虽然不好,但是可以将就。

为什么差异表达分析R包不用tpm,而选择raw_count?

 FPKM / RPKM与TPM哪个用来筛选差异表达基因更准确?你可别逗了!

首先,没必要。TPM进行了基因长度的归一化,但实际上不同样本间同一基因是否存在表达差异跟基因长短压根没关系。如果Sample1和Sample2中都有A基因,不管A基因长度是1k还是100kb,只要reads数不同,就可以判断是否为差异基因。

其次,是不能。差异表达分析软件要做的是多样本间同一特征比较前的均一化,而获得TPM时做的是样本内所有特征的均一化,两者目标不同。因此,如果用TPM进行差异表达分析反而会丢失一些信息,并不适宜。

你可能感兴趣的:(未分类,r语言)