edgeR进行差异分析

该文展示了如何利用R语言中的tidyverse和edgeR包对基因表达数据进行预处理、差异分析。首先,读取并处理数据,然后构建分组信息。接着,通过DGEList对象、CPM过滤、TMM标准化等步骤进行数据预处理。最后,运用glmFit和glmQLFit进行模型拟合,筛选出差异表达基因,并输出结果。
摘要由CSDN通过智能技术生成
##  1、准备数据
##########
library(tidyverse)
library(readr)
count <- read_delim("~/Program/Penaeus_chinensis/data/expression_matrix/count.tsv", 
                    delim = "\t", escape_double = FALSE, 
                    trim_ws = TRUE)
gene_exp = column_to_rownames(count,var = "gene_id")

library(tidyverse)
name = c()
for (m in c("FCN25_","FCN10_","FCM25_","FCM10_")) {
  for (i in 1:6) {
    name1 = str_c(m,i)
    name = c(name,name1)
  }
}
gene_exp = gene_exp %>% dplyr::select(name)


##  2、进行edgeR差异分析
##########
#1)构建分组信息
condition_edger <-factor(c(rep('normal',12),rep('moribund',12)))

library(edgeR)

#2)数据预处理
#(1)构建 DGEList 对象
dgelist <- DGEList(counts = gene_exp, group = condition_edger)

#(2)过滤 low count 数据,例如 CPM 标准化(推荐)
keep <- rowSums(cpm(dgelist) > 1 ) >= 2
dgelist <- dgelist[keep, , keep.lib.sizes = FALSE]

#(3)标准化,以 TMM 标准化为例
dgelist_norm <- calcNormFactors(dgelist, method = 'TMM')

#差异表达基因分析
#首先根据分组信息构建试验设计矩阵,分组信息中一定要是对照组在前,处理组在后
design <- model.matrix(~condition_edger)

#(1)估算基因表达值的离散度
dge <- estimateDisp(dgelist_norm, design, robust = TRUE)

#(2)模型拟合,edgeR 提供了多种拟合算法(示例两种任选一种)
#负二项广义对数线性模型
fit <- glmFit(dge, design, robust = TRUE)
lrt1 <- topTags(glmLRT(fit), n = nrow(dgelist$counts))

#拟似然负二项广义对数线性模型
fit <- glmQLFit(dge, design, robust = TRUE)
lrt2 <- topTags(glmQLFTest(fit), n = nrow(dgelist$counts))

lrt1$table %>% filter(abs(logFC)>1 &FDR <0.05) %>% nrow()
lrt2$table %>% filter(abs(logFC)>1 &FDR <0.05) %>% nrow()
write_tsv(lrt$table %>% rownames_to_column(var = "gene_id"),file = "~/Program/shrimp/data/edgeR_result")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘融晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值