edgeR的一些小九九

基本上RNA-Seq等等各种测序手段都需要计算差异表达
通常大家常用的软件不外乎cufflinks和几个R包DESeq、EBSeq、edgeR、ballgown。
值得一提的是现在的软件和R包大多需要有生物学重复才能准确计算差异表达情况

目前,我只了解edgeR可以在无生物学重复的情况下计算差异表达。

edgeR 官方发布页[中科大镜像]:http://mirrors.ustc.edu.cn/bioc/packages/release/bioc/html/edgeR.html

简单写一下edgeR的用法

首先,安装edgeR包

source('https://www.bioconductor.org/biocLite.R')
biocLite('edgeR')

随后,读取数据,修饰成如图的模样,列名自己随意定义能够识别对应什么样本就好,行名需要为对应的转录本或者基因的可识别的ID或者名称


由转录本或者其他元件的Count值构成的DataFrame
无生物学重复
library(edgeR)        # 加在edgeR

# counts就是上图的dataframe
# group就是分组,数据来源为几组,就对应的分成几组
# 如果有6组数据,分别来自于三组数据,那么group=c(1, 1, 2, 2, 3, 3),123分别对应来源
y <- DGEList(counts=counts, group=1:2)  

# bcv是官方文档的推荐数值(对应人的,对应其他物种的值不清楚),可以自己调整
bcv = 0.1
et <- exactTest(y, dispersion=bcv^2)

results = et$table

以上,即完成了无生物学重复的差异表达的计算


结果

结果中,有三列

  • logFC是treat/control的log2(Fold Change),并不是简单的count值的对比,而是分别计算了两组的CPM值然后计算的logFC
  • logCPM是CPM值的log2
  • PValue,差异表达的p值

补充,CPM(count per million)CPM = 每个转录本的count值/某样本总count值 * 10^6

如果,还需要计算q值,自行通过R的p.adjust计算一下就好
results$q = p.adjust(results$PValue, method = 'fdr')

你可能感兴趣的:(edgeR的一些小九九)