edgeR的一些小九九
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了edgeR的一些小九九相关的知识,希望对你有一定的参考价值。
参考技术A 基本上RNA-Seq等等各种测序手段都需要计算差异表达
通常大家常用的软件不外乎cufflinks和几个R包DESeq、EBSeq、edgeR、ballgown。
值得一提的是现在的软件和R包大多需要有 生物学重复 才能准确计算差异表达情况
目前,我只了解edgeR可以在无生物学重复的情况下计算差异表达。
edgeR 官方发布页[中科大镜像]: http://mirrors.ustc.edu.cn/bioc/packages/release/bioc/html/edgeR.html
首先,安装edgeR包
随后,读取数据,修饰成如图的模样,列名自己随意定义能够识别对应什么样本就好,行名需要为对应的转录本或者基因的可识别的ID或者名称
以上,即完成了无生物学重复的差异表达的计算
结果中,有三列
补充,CPM(count per million)CPM = 每个转录本的count值/某样本总count值 * 10^6
如果,还需要计算q值,自行通过R的p.adjust计算一下就好
results$q = p.adjust(results$PValue, method = \'fdr\')
edgeR
edgeR:Empirical Analysis of Digital Gene Expression Data in R
一个R包,用于RNA-seq或相关技术分析中,基因差异性表达的read count的分析。(read count 已通过HTseq-count等工具得到)。
read counts的来源可以htseq-count等计算原始count的结果,不可以是cufflinks等计算normalization count的结果。
counts数据格式:至少为两列,一列为基因类表,一列为raw counts。如果数据存储在不同的文件中,则应该将其合并。可以用readDGE函数。
edgeR是以DEGList的格式储存数据,DEGList是一个以list为基础的数据格式,list的所有方法其都可以使用。
1.构建DEGList:用DEGList()构建。
>y<-DGEList(counts=x) #x是read counts的matrix或data.flame。 >group<-c(1,1,2,2) #关于sample属于哪一个group。 >y<-DGEList(counts=x,group=group)
DEGList中主要包括一个counts matrix,一个 samples data.frame,还有一个可选的genes data.frame(注释)。
sample data.frame 主要包括library的size或sample的sequencing depth,如果没给,则会默认按counts的总和来计算。但是必须 sample data.frame必须包含一个列group,用于区分samples属于哪一个group。
2。过滤:
生物学上看,一个基因要被表达成蛋白或是其他的生物功能,则它的表达量应该达到一个最低的水平。
所以在进一步分析前,应该过滤掉一些low counts的基因。这里用cpm(count per million)来表示基因的counts水平。
>keep<-rowSums(cpm(y)>1)>=2 #>=2表示每个group中的samples数最少是2. >y<-y[keep, ,keep.lib.sizes=FALSE]
3.TMM标准化:
在treated和untreated样品中,常常会有少量的基因在treated样品中高表达,但在untreated样品则正常。在treated样品中,高表达的基因的reads会占据一大部分的library size,
而导致剩余基因被错误的判断为下调。
>y<-calcNormFactors(y) >y$samples
4.离散度的检测(dispersion)
参考:
http://blog.sina.com.cn/s/blog_5d188bc40102vwci.html
http://blog.sciencenet.cn/blog-508298-776802.html
以上是关于edgeR的一些小九九的主要内容,如果未能解决你的问题,请参考以下文章