转录组差异基因分析有很多包,常见的或者公认的却只有这么几种,edgeR包介绍完之后,我想所有人应该能够轻松应对普通转录组的差异分析了。
还是利用上节的数据:
setwd("F:/生物信息学")
A <- read.csv("GSE169758_markdup.featco.2.counts.csv",header = T,row.names = 1)
安装并加载R包:
BiocManager::install('edgeR')
library(edgeR)
edgeR包的应用很广,可应用于基因、外显子、转录本的差异表达。edgeR包还有个功能是可以分析没有生物学重复的样本,从帮助文档查看获取合适的方法,当样本没有重复,但是想看差异的时候可以试试。但是还是建议所有的生物学实验都设置重复!!!
edgeR需要传入的数据也是row counts。指定分组:
group <- rep(c('Mcc', 'Pan'), each = 6)
构建 DGEList 对象:
dgelist <- DGEList(counts = A, group = group)
过滤低质量count 数据,并对数据进行标准化:
keep <- rowSums(cpm(dgelist) > 1 ) >= 2 #方法的选择依据具体情况
dgelist <- dgelist[keep, , keep.lib.sizes = FALSE]
norm <- calcNormFactors(dgelist, method = 'TMM')#方法的选择依据具体情况
差异表达分析,首先根据分组信息构建分析矩阵,分组这里要注意,一定是Control在前,处理组在后。
design <- model.matrix(~group)
估算表达离散值并进行拟合,拟合方法有很多选择:
dge <- estimateDisp(norm, design, robust = TRUE)
fit <- glmFit(dge, design, robust = TRUE)
df <- topTags(glmLRT(fit), n = nrow(dgelist$counts))
df <- as.data.frame(df)
最后得到差异基因列表:
将结果保存,可以手动筛选或者和上节一样代码筛选:
write.csv(df, file='df.csv')
至此,普通转录组差异分析三大R包全部介绍完毕,接下来会说一些细节的问题,包括基因注释等等。当然还有大家最关心的数据可视化,力求用最好的方法和图形呈现转录组数据结果,让你的paper大放异彩!