084-转录组样本间表达标准化
刘小泽写于19.2.13
做无参真的需要比有参更多的耐心啊
假设现在对两组样本进行转录组测序,得到5个基因(每条基因长度是1kb)的reads count数如下表,其中对照组总共10Mreads,处理组总共50Mreads
基因(都是1kb) | 对照组 | 处理组 |
---|---|---|
a1 | 2 | 3 |
a2 | 2 | 3 |
a3 | 2 | 3 |
a4 | 2 | 3 |
a5 | 2 | 38 |
Totalreads(M) | 10 | 50 |
**目的:**想比较某个基因在两个样本中的表达是否差异显著
常用方法是TPM转换,用(每个基因count/基因长度)/ count总数
也就是得到了这个表格
基因(都是1kb) | 对照组 | 处理组 | TPM-对照 | TPM-处理 |
---|---|---|---|---|
a1 | 2 | 3 | 0.2 | 0.06 |
a2 | 2 | 3 | 0.2 | 0.06 |
a3 | 2 | 3 | 0.2 | 0.06 |
a4 | 2 | 3 | 0.2 | 0.06 |
a5 | 2 | 38 | 0.2 | 0.76 |
意外的是,所有的5条基因都有差异(0.2 <=> 0.06)
按说差异基因只是少数,既然得到的结果都是差异的,那就应该考虑有极值影响,也即是这里的a5基因在处理组中表达量很高,导致其余基因的表达量降低
原因就是:使用TPM得到的结果,其实是每个组内各个基因中的相对表达量。但其实做差异分析时,我们想找到绝对表达量的差别,因此需要对组间的表达量进行标准化
标准化方法一:内参
使用内参基因(看家基因)在不同组织、不同条件下表达恒定,负责生命活动的基本运行,如beta-actin
设置内参基因(假设a1基因是内参),可以给两个样本乘以不同的系数,来让内参基因的表达量达到一致。这里将对照组的a1基因乘以0.3,将处理组的a1乘以0.2,就得到了组间标准化的数据
基因(都是1kb) | 对照组 | 处理组 | 标准化-对照 | 标准化-处理 |
---|---|---|---|---|
a1 | 2 | 3 | 0.6 | 0.6 |
a2 | 2 | 3 | 0.6 | 0.6 |
a3 | 2 | 3 | 0.6 | 0.6 |
a4 | 2 | 3 | 0.6 | 0.6 |
a5 | 2 | 38 | 0.6 | 7.6 |
这样看来,只有a5一条基因满足差异要求
但是内参的方法首先需要注释,另外可以当成内参的基因比较少,可能数据中找不到这样的结果
标准化方法二:假设检验
先假设大多数基因不是差异表达的,然后利用统计学方法找到标准化因子
一般使用的差异分析软件中内置了组间标准化的方法:
DESeq2:sizeFactors()
,edgeR(TMM方法):calcNormFctors()
进行差异分析时,输入文件为reads count,然后差异分析软件进行标准化,如果进行Trinity无参分析,可以使用run_DE_analysis.pl
几种差异比较的方法
- 组内比较:TPM(比较不同基因在同一样本中的表达差异)=》需求比较少
- 组间比较: TMM(比较同一基因在不同样本中的差异)=》最为常用
- 二者结合:如Trinity软件中的TMM-normalized FPKM结果文件,在低表达数据过滤、heatmap绘制等【但还是FPKM竟然不是TPM的结果,可能虽然TPM更准确,但使用最多的还是早期的FPKM】