搜索
查看: 16230|回复: 5

[mRNA-seq] 使用edgeR进行差异表达分析-前期摸索版

[复制链接]

4

主题

8

帖子

694

积分

高级会员

Rank: 4

积分
694
QQ
发表于 2016-12-29 17:32:11 | 显示全部楼层 |阅读模式
edgeR对于搞数据分析的人来说应该都不陌生,里面提供了多种实验设计下的差异分析方法,对无重复样本的计算也提供了一些建议,最近要做这一部分,之前因为用cuff-XX系列的东西很流畅,没关心过,借此机会来鼓捣一下,做个笔记,有错误的地方还希望大家直接正面指正,我是个爱思考的好孩子~
这个可能是对edgeR的protocol的一个翻译,也可能是夹杂一堆主观意愿的干似混杂,本人声明: 对于任何误导,都概不负责~

用之前先找到工作目录: getwd()
或者自己指定一个工作目录setwd("绝对路径")

edgeR是R软件的一个包,安装方法如下:
source("https://bioconductor.org/biocLite.R")
biocLite('edgeR')

在这个过程中可能会提示依赖于一些其他的包,如limma等,都安装就行了:
install.packages("包的名字")
使用就是:  我这里必须先加在limma,本人mac os X 10.11 的系统, R 3.3.2
library(limma)
library(edgeR)
library之后就可以一顿鼓捣了。edgeR适用于来自于很多平台的数据,包括但不仅限于Illumina/454/ABI SOLiD/ChIP-Seq等,还可以用于shRNA-seq跟CRISPR系统的基因印证筛选(不懂,谁会可以教教我,CC系统好火啊)。edgeR可以进行基因/外显子/转录本/EST等多水平的的差异表达分析,可以针对基因组学的任何一个特征和水平进行统计和计算,而且对于外显子水平上的差异表达分析方法也很容易被移植到可变剪切等方面。
在有的文章里面会提到经典edgeR(classic edgeR),这是从算法设计上来进行区分的,经典edgeR采用精确检验的办法来对多组设计的实验数据进行分析。相对应的另一种算法模式时glim edgeR, glm的全称是generalized linear models,广义线性模型。glm采用似然比检验或者拟似然比F检验的方式来确定基因之间的差异水平。两种方法之间其实是互补的,应该根据自己的实验设计/实验产生的数据的分布特征/实验数据的结构来进行选择。统计学知识了,, 有队友一起学习吗?

在后面的实例操作中,会不断的提出一个步骤叫计算BCV——biological coefficient of variation,生物变异系数,这里不想多说。 CV是对同一组数据的变异成都的描述性统计量,CV=标准差/均值,是不依赖单位的尺度。数据的变异可以分为两部分:一是处理因素造成的,这是研究的重点;二是无关因素造成的,例如技术/测量方法/手抽犯错等,这是要尽量排除和控制的。所以计算这个很重要。增加测序深度能够减小无关因素的影响。edgeR的两种模式都采用经验贝叶斯公式来进行计算。

1. 入门级使用,如果你有两组数据,每组数据有两个重复,i.e共有四个文库数据,而且你整理好了文档格式为名称/文库1的counts/2的。。。,分隔符采用tab,纯文本文档。你可以使用以下进行:
[Python] 纯文本查看 复制代码
> x <- read.delim("TableOfCounts.txt",row.names="Symbol")  #读入数据
group <- factor(c(1,1,2,2)) #分组
y <- DGEList(counts=x,group=group) #转化成R擅长处理的格式
y <- calcNormFactors(y) #标准化数据/归一化
design <- model.matrix(~group) /实验设计矩阵,以指示比对的方式
y <- estimateDisp(y,design)  #估计数据的分布
##如果你采用计算似然比的方式:
fit <- glmFit(y, design) #根据分布进行数据处理
lrt <- glmLRT(fit, coef=2) #返回差异表达的基因,计算统计量
topTags(lrt) #返回排名前10的差异基因的details

##如果你采用拟似然比F检验 —— 具体用不用根据自己的数据结构跟分布模型来选择
fit <- glmQLFit(y, design)
qlf <- glmQLFit(fit, coef =2 )
topTags(qlf)##就不注释了,,,







上一篇:在3个生物学重复不同处理下,如何筛选差异基因
下一篇:ADDIS制作meta网状分析教程
Yes, I am serious.
回复

使用道具 举报

633

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2016-12-29 17:34:03 | 显示全部楼层
挺好的,慢慢来,帮我的github代码都学一遍吧,里面有6个包分别做RNA-seq的差异分析的所有代码:https://github.com/jmzeng1314/my-R/blob/master/8-DEG/server.R
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2018-4-9 14:09:11 | 显示全部楼层
楼主方便解释一下设计矩阵那一行代码不?
design <- model.matrix(~group) /实验设计矩阵,以指示比对的方式
没有理解那句代码的作用,然后为什么那么写,那个~又是什么
回复 支持 反对

使用道具 举报

29

主题

131

帖子

1208

积分

金牌会员

Rank: 6Rank: 6

积分
1208
发表于 2017-1-3 21:38:07 | 显示全部楼层
一般对有重复的mRNA-Seq数据, 我也会使用edgeR这个R包。
但是对于两组单因素试验,一般是不是使用classic edgeR较多?

还是说两组单因素数据,只要分组design设置为单因素,
用fit <- glmFit(y, design)
lrt <- glmLRT(fit)
也是生成同样的结果,待尝试。。。
或者求解答。。。
回复 支持 反对

使用道具 举报

633

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2016-12-29 19:56:35 | 显示全部楼层
赵云乐 发表于 2016-12-29 18:41
好的, 这个战线可能要被拖长,发出来也是希望大家能多催促一下,,,

加油,你是个很不错的小伙子
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

4

主题

8

帖子

694

积分

高级会员

Rank: 4

积分
694
QQ
 楼主| 发表于 2016-12-29 18:41:44 | 显示全部楼层
Jimmy 发表于 2016-12-29 17:34
挺好的,慢慢来,帮我的github代码都学一遍吧,里面有6个包分别做RNA-seq的差异分析的所有代码:https://gi ...

好的, 这个战线可能要被拖长,发出来也是希望大家能多催促一下,,,
Yes, I am serious.
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-11-17 09:05 , Processed in 0.037990 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.