DESeq2和EdgeR都可用于做基因差异表达分析,主要也是用于RNA-Seq数据,同样也可以处理类似的ChIP-Seq,shRNA以及质谱数据。

这两个都属于R包,其相同点在于都是对count data数据进行处理,都是基于负二项分布模型。因此会发现,用两者处理同一组数据,最后在相同阈值下筛选出的大部分基因都是一样的,但是有一部分不同应该是由于其估计离散度的不同方法所导致的。 ### DESeq2的使用方法:

输入矩阵数据,行名为sample,列名为gene;DESeq2不支持无生物学重复的数据,因此我选择了2个样本,3个生物学重复的数据;并对count data取整(经大神指点,这里需要说明下,我的测试数据readcount是RSEM定量的结果,并不是常见的htseq-count的结果,所以count值会有小数点,而DESeq2包不支持count数有小数点,所以这里需要round取整)。

database_all

database

type

database

设置分组信息以及构建dds对象

condition

coldata

dds

使用DESeq函数进行估计离散度,然后进行标准的差异表达分析,得到res对象结果

dds

res

最后设定阈值,筛选差异基因,导出数据

table(res$padj <0.05)

res

resdata

write.csv(resdata,file = "LC_1_vs_LC_2.csv")

EdgeR的使用方法:

跟DESeq2一样,EdgeR输入矩阵数据,行名为sample,列名为gene;DESeq2不支持无生物学重复的数据,因此我选择了2个样本,3个生物学重复的数据。

exprSet_all

exprSet

group_list

设置分组信息,去除低表达量的gene以及做TMM标准化

exprSet 1) >= 2,]

exprSet

exprSet

使用qCML(quantile-adjusted conditional maximum likelihood)估计离散度(只针对单因素实验设计)

exprSet

exprSet

寻找差异gene(这里的exactTest函数还是基于qCML并且只针对单因素实验设计),然后按照阈值进行筛选即可

et

tTag

tTag

write.csv(tTag,file = "LC_1_vs_LC_2_edgeR.csv")

Summary

以上我主要针对单因素两两比较组进行差异分析,其实DESeq2和EdgeR两个R包都可以对多因素进行差异分析。

DESeq2修改以上代码的分组信息design参数以及在差异分析results函数中添加所选定的分组因素,其他代码基本一样,具体参照DESeq2手册

EdgeR则需要用Cox-Reid profile-adjusted likelihood (CR)方法来估算离散度,y