发布网友 发布时间:2022-12-26 14:25
共1个回答
热心网友 时间:2023-10-15 22:55
在RNA-Seq流程中,第一步是载入counts数据,我们可以使用DGEList工具或者自己组建表达矩阵。接下来就应该是筛选过低表达的基因,是必须要做的一项工作。
无论从生物学角度还是统计学角度,都应该去除低表达基因;生物学角度看,一个基因必须有一定的表达量,才能够转录、翻译蛋白质并有生物学意义;从统计角度看,一个过低表达的基因不能够获得显著性差异,不具有统计学意义
我们假设使用一个样本数20-25M的样本库举例 —— 好吧如果较真的话是 GSE60450 。此样本分组情况是6个组,每组两个重复。
首先要遵循的一条原则是:一个基因的count数,至少在某些样本中应达到10-15。我们可以人工规定,只计算10以上的。但是,用cpm代替rowcounts要好那么一丢丢。cpm众所周知是消除测序深度差异。
使用cpm>0.5进行筛选,得到了1w+结果
为什么选择cpm>0.5这个数值呢?因为cpm0.5 ≈ 10/L,L是 minimum library size in millions, 而这个实验的L是20-25million。那么10/20=0.5。注意这个0.5并不是很重要,我们只是简单估计。这个数值对后续分析的影响也不会太大。
>=2 , 表示对每个基因(每行),其在至少两个libraries 中cpm要>0.5。选择2因为每组都有2两个重复。换句话说就是,至少在每组的两个重复样本中cpm>0.5, 我们就保留,否则就去掉。
上面使用cpm的筛选可以最大限度的保留符合条件的基因。如果我们赶时间的话,也可以直接使用counts筛选: keep <-rowSums(y$counts) > 50
这个方法比较方便,而且实际筛选出来的基因数量较少,我试着我试着去看edgeR的源码,居然没有搜到这个方法,只有介绍。
keep.lib.sizes=FALSE 参数在过滤结束后重新计算样本库size,一般推荐是这样做的。尽管做不做对后续影响都不大...
无论何种筛选方法,都应该独立于目标文件进行。避免指定哪个RNA属于哪个group。否则会对下游分析产生影响