# 清空环境
rm(list = ls())
options(stringsAsFactors = F)
# 读取counts矩阵
counts <- read.csv('./UUO-Sham_count.csv', header = T, row.names = 1)
counts <- counts[, -1]
# 构建DGEList object
library(edgeR)
y <- DGEList(counts = counts)
# Filtering: keep genes with counts more than 50
A <- rowSums(y$counts)
isexpr <- A > 50
y <- y[isexpr, keep.lib.size = FALSE]
dim(y)
y <- calcNormFactors(y)
logCPM <- cpm(y, log=TRUE, prior.count=3)
group_list <- gl(2, ncol(counts)/2, labels = c('ctrl', 'treat'),
length = ncol(counts))
design <- model.matrix(~0+factor(group_list))
colnames(design)=levels(factor(group_list))
rownames(design)=colnames(counts)
head(design)
# linear model
v <- voom(y, design, plot=TRUE, normalize="quantile")
fit <- lmFit(v, design)
cont.matrix=makeContrasts(contrasts=c('treat-ctrl'), levels=design)
fit2=contrasts.fit(fit, cont.matrix)
fit2=eBayes(fit2)
tempOutput = topTable(fit2, coef='treat-ctrl', n=Inf)
DEG_limma_voom = na.omit(tempOutput)
write.csv(tempOutput, './DEGs_voom.csv')
R语言Limma包分析RNA-seq数据
最新推荐文章于 2024-07-15 02:39:14 发布