查看: 5647|回复: 46
打印 上一主题 下一主题

[软件使用] 基于edgeR的差异分析案例实操

  [复制链接]

迅猛龙

Rank: 8Rank: 8

主题
324
注册时间
2020.6.16
在线时间
199 小时

跳转到指定楼层
楼主
发表于 2021.4.28 09:22:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 基迪奥-Jt桃 于 2021.4.28 09:22 编辑

与DESeq2、limma等差异分析工具相似,edgeR也是一个非常受欢迎的差异分析工具。与DESeq2不同的是,edgeR的强大之处在于即使没有重复也可以使用edgeR进行差异分析。下面就以具体的案例看下如何使用edgeR进行差异分析吧。

案例一

本案例的数据与edgeR官方案例数据基本一致。来自三名口腔鳞状细胞癌患者的癌组织(oral carcinomas)和正常组织(normal tissue),两个分组,3个重复,共6个样本。其中,这里的样本名称做了调整,将数字放在字母后更符合编程语法习惯。

本案例的分析目的是检测肿瘤组织和正常组织之间的差异表达基因。为了方便大家练习使用,本文用到的范例数据已上传到OmicShare,可直接下载使用。

范例数据下载:
https://www.omicshare.com/forum/thread-6985-1-1.html

1.读入数据

  1. rawdata <- read.csv("case01data_filtered.csv", header = T,row.names = 1)
  2. #查看前6行;
  3. head(rawdata)
复制代码


  1. #载入edgeR包;
  2. library(edgeR)
  3. #创建edgeR储存数据的DGElist对象;
  4. y <- DGEList(counts=rawdata[,5:10], genes=rawdata[,1:4])
  5. #创建的list对象结构比较简单,包括counts、samples、genes这3个表格;
  6. #关于样本表格中的lib.size(文库大小)计算方法是对当前样本所有基因的counts值求和;
  7. y
复制代码


2.数据过滤与标准化

  1. #按照基因count之和,对数据进行降序排列;
  2. o <- order(rowSums(y$counts), decreasing=TRUE)
  3. y <- y[o,]
  4. #查看排序后的结果;
  5. head(y$counts)
  6. tail(y$counts)
复制代码


一般情况下需要过滤掉低表达的基因,但这里两个分组的总counts数都大于50,不做过滤,具体过滤方法可参考下期文章的案例2

  1. #对数据进行TMM normalization,计算标准化因子;
  2. y <- calcNormFactors(y)
  3. y$samples
复制代码


3.数据探索

  1. #首先,检查样本中的异常值,使用plotMDS()作图。
  2. plotMDS(y)
复制代码


Multidimensional scaling plot中,样本之间的距离对应于这些样品之间主要生物变异系数(biological coefficient of variation,BCV)。从横轴方向(dimension 1)来看,tumor和normal样本可以清楚分开,而在纵轴方向上,样本的编号(patient number)也是基本一致的。这可以证实具有配对样本特性,且肿瘤组织比正常组织有更高的异质性。

4.生成试验设计矩阵

在进行negative binomial GLMs拟合之前,需要先指定实验设计方案。这里,我们主要想在肿瘤组织和正常组织之间进行差异分析,并加上了患者之间的差异因子进行调整。在统计学中术语,这是一个以patient为blocking factor的加性线性模型。

  1. Patient <- factor(c(8,8,33,33,51,51))
  2. Tissue <- factor(c("N","T","N","T","N","T"))
  3. data.frame(Sample=colnames(y),Patient,Tissue)
复制代码


  1. #指定blocking factor和比较组,生成design矩阵;
  2. #这种加性模型适用于配对试验设计或具有批次效应的试验;
  3. design <- model.matrix(~Patient+Tissue)
  4. rownames(design) <- colnames(y)
  5. design
复制代码


5.估计离散系数(dispersion)

  1. #注意安装"statmod"包否则会报错;
  2. #install.packages("statmod")
  3. y <- estimateDisp(y, design, robust=TRUE)
  4. y$common.dispersion
复制代码

对common dispersion求平方根即为生物变异的变异系数;这里common dispersion为0.159,因此,生物变异系数(coefficient of biological variation)为sqrt(0.159),约0.4左右。

  1. #可以用BCV plot查看离散系数;
  2. plotBCV(y)
复制代码


6.差异分析

  1. #先进行glm拟合;
  2. fit <- glmFit(y, design)
  3. colnames(fit)
  4. #然后执行likelihood ratio test,对肿瘤与正常组织的进行差异分析;
  5. lrt <- glmLRT(fit)
  6. #展示Top10显著表达的差异基因(较小的p值,较大的logFC);
  7. topTags(lrt)
复制代码


  1. #根据p值对分析结果升序排列;
  2. o <- order(lrt$table$PValue)
  3. #查看TOP10基因的CPM(counts-per-million)值;
  4. CPM <- as.data.frame(cpm(y)[o[1:10],])
  5. CPM
复制代码


  1. #尝试计算log2FC值,结果有细微差异;
  2. N <- (CPM$N8+CPM$N33+CPM$N51)
  3. Tum <- (CPM$T8+CPM$T33+CPM$T51)
  4. log2(Tum)-log2(N)

  5. #以FDR=0.05为阈值,统计差异基因个数;
  6. summary(decideTests(lrt))
  7. #Down 938
  8. #NotSig 9245
  9. #Up 331
  10. #绘制差异基因散点图(类似火山图);
  11. plotMD(lrt)
  12. abline(h=c(-1, 1), col="blue")
复制代码


Tips
OmicShare云平台全新推出的配对edgeR/DESeq2差异分析工具和edgeR/DESeq2差异分析工具上线啦,大家可以前往使用~

配对edgeR/DESeq2差异分析:
https://www.omicshare.com/tools/Home/Soft/paired-deg

edgeR/DESeq2差异分析:

https://www.omicshare.com/tools/Home/Soft/diffanalysis



本次内容就先到这里啦,下期文章中将继续介绍基于edgeR的差异分析案例实操的案例2,研究拟南芥接种丁香假单胞菌ΔhrcC突变体后产生的反应,感兴趣的老师们不要错过哦。

本文作者:基迪奥-莫北     


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
新的一天加油!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
2
注册时间
2020.9.8
在线时间
5 小时

沙发
发表于 2021.4.28 09:37:44 | 只看该作者
非常详细啦
新的一天加油!
回复 支持 反对

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2020.11.21
在线时间
48 小时

板凳
发表于 2021.4.28 11:25:18 | 只看该作者
坚持就是胜利!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2017.6.6
在线时间
127 小时

灌水之王


地板
发表于 2021.4.29 08:24:32 | 只看该作者
新的一天加油!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

5#
发表于 2021.4.29 08:25:19 | 只看该作者
加油加油!!!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2020.11.23
在线时间
10 小时

6#
发表于 2021.5.1 15:47:07 | 只看该作者
真不错
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

7#
发表于 2021.5.6 08:27:47 | 只看该作者
加油加油!!!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

8#
发表于 2021.5.7 08:14:54 | 只看该作者
加油加油!!!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2021.4.6
在线时间
5 小时

9#
发表于 2021.5.7 22:26:06 | 只看该作者
加油
回复

使用道具 举报

帝王蝶

Rank: 4

主题
0
注册时间
2021.1.28
在线时间
7 小时

10#
发表于 2021.5.8 09:19:31 | 只看该作者
顶!!!!!!!!!!!!!!!!!
回复

使用道具 举报

帝王蝶

Rank: 4

主题
0
注册时间
2021.1.28
在线时间
7 小时

11#
发表于 2021.5.9 20:57:53 | 只看该作者
顶!!!!!!!!!!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

12#
发表于 2021.5.10 15:37:48 | 只看该作者
加油加油!!!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

13#
发表于 2021.5.11 08:17:51 | 只看该作者
加油加油!!!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2017.6.6
在线时间
127 小时

灌水之王


14#
发表于 2021.5.11 09:47:27 | 只看该作者
新的一天加油!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2020.11.23
在线时间
10 小时

15#
发表于 2021.5.11 15:00:37 | 只看该作者
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2019.6.20
在线时间
19 小时

16#
发表于 2021.5.11 16:35:49 | 只看该作者
谢谢分享,学到了
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2021.3.29
在线时间
6 小时

17#
发表于 2021.5.11 19:35:38 | 只看该作者
新的一天加油!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2016.12.6
在线时间
100 小时

18#
发表于 2021.5.13 10:52:47 | 只看该作者
很详细的实操,感谢分享
加油
回复 支持 反对

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

19#
发表于 2021.5.13 13:12:56 | 只看该作者
加油加油!!!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
46 小时

20#
发表于 2021.5.14 08:14:00 | 只看该作者
加油加油!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表