edgeR基因表达差异分析
文章目录
参考:
一个比较详细的例子:http://www.iwhgao.com/edger%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C/
bioconductor主页:http://www.bioconductor.org/packages/release/bioc/html/edgeR.html
RNAseq123:http://www.bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow_CHN.html
官方文档总结
注意⚠️:
- edgeR设计用于实际读取计数。我们不建议将预测的转录本丰度输入到edgeR而不是实际计数中。
读取read数
可以使用read.table(),read.delim(),如果文件比较多,readDGE(files, columns=)来一次性读取多个文件。注意,readDGE()需要指定两列,一列用于计数,一列用于基因标识符
x <- readDGE(files, columns=c(1,3))
DGEList对象、构建分组
DGEList是一个可以包含多种内容和统计的列表。DGEList至少需要的元素:counts
、samples
(包含group分组信息和lib.size文库大小),counts用来存放表达矩阵,samples用来标记样本信息和库的大小,group声明组别 。
# 构建一个含有组别标记的DGEList
y<- DGEList(counts=x)
group <- c(1,1,2,2)
y<- DGEList(counts=x,group=group)
DGEList中分组是必要的,也可以添加其他信息进去,例如lane道,基因长度,基因注释等信息
一个注释过的DGEList
过滤,删除低表达基因
低表达基因不仅用不到,而且会干扰结果,所以要去除在任何样本中都没有足够多的序列片段的基因应该从下游分析中过滤掉,因为:
- 低表达没有生物学意义
- 去除低表达数据可以对数据中均值-方差关系有更精确的估计
- 减少了观察差异表达下游分析中的运算量
edgeR包中的filterByExpr
函数提供了自动过滤基因的方法,可保留尽可能多的有足够表达计数的基因。此函数默认选取最小的组内的样本数量为最小样本数,保留至少在这个数量的样本中有10个或更多序列片段计数的基因。
过滤标准是,以最小对组内样本数为标准,(此例最小组内样本为3),如果有基因在所有样本中表达数(count)小于10的个数超过最小组内样本数,就剔除该基因。换算为cpm即cut.off.cpm=10/<su