当前位置: 首页 > news >正文

RNA-seq(3):用 DESeq2 做差异表达分析——以 airway 数据为例

以解牛之法析生信,观微雀之形览科研。

今天我们一起来学习使用DESeq2进行转录组的差异分析。

三、DEseq2差异分析及对比

使用数据:airway
工具:DESeq2
相关R包:DESeq2(分析)、ggplot2(绘图)

1. 工具介绍:DESeq2

DESeq2是 RNA-seq 差异表达分析 最主流的 R 包之一(发表于 2014 年,已被引用数万次),专门用于基于负二项分布模型的计数数据差异分析。它由 Bioconductor 项目维护,是转录组分析的标准工具。

输入数据原始整数计数矩阵(不能是 TPM/FPKM),行=基因,列=样本

标准化方法: median-of-ratios 方法,通过计算每个基因的相对计数因子来校正文库大小差异,对异常值更稳健

差异检验: 基于 Wald 检验 或 似然比检验(LRT),自动估计基因离散度

处理小样本: 使用 经验贝叶斯方法 将基因间离散度信息“收缩”(shrinkage),使小样本(如 n=3)也能获得可靠结果

log2FC 收缩: 提供 apeglm 和 ashr 两种收缩方法,对低计数基因的 log2FC 进行适度压缩,提高结果稳定性

DESeq2说明文档

Bioconductor 手册:https://bioconductor.org/packages/devel/bioc/manuals/DESeq2/man/DESeq2.pdf

github仓库:https://github.com/thelovelab/DESeq2

使用说明

# 如何使用DESeq(object,test=c("Wald","LRT"),fitType=c("parametric","local","mean","glmGamPoi"),sfType=c("ratio","poscounts","iterate"),betaPrior,full=design(object),reduced,quiet=FALSE,minReplicatesForReplace=7,modelMatrixType,useT=FALSE,minmu=if(fitType=="glmGamPoi")1e-06else0.5,parallel=FALSE,BPPARAM=bpparam())

2. 下载及加载包

# # 第一次安装可以选中ctrl+shift+c取消注释,运行安装# 安装biocManager# if (!require("BiocManager", quietly = TRUE))# install.packages("BiocManager")# # 差异分析核心DESeq2包# BiocManager::install(c("DESeq2", "apeglm"), update = FALSE)# # 数据处理# BiocManager::install(c("tidyverse", "tibble"), update = FALSE)# # 绘图包# BiocManager::install(c("ggplot2", "EnhancedVolcano", "ggrepel", "pheatmap", "ggpubr", "RColorBrewer"), update = FALSE)# 1.2.3 加载包,确定已经安装了包后再加载# 如果报错或者提示没有安装,返回上一步library(DESeq2)library(apeglm)library(tidyverse)library(ggplot2)library(EnhancedVolcano)library(ggrepel)library(pheatmap)library(ggpubr)

3. 示例数据加载:

airway数据:

if(!require("BiocManager",quietly=TRUE))install.packages("BiocManager")options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")# 切换中科大镜像下载BiocManager::install("airway")#下载airway数据,2014年发表library(airway)#加载包data(airway)#加载airway数据集airway#查看数据集是否加载成功

Bioconductor 页面:https://bioconductor.org/packages/release/data/experiment/html/airway.html

原始 GEO 项目:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE52778

airway 数据集来源于 GEO 项目 GSE52778,是该项目的子集(包含 4 个细胞系各 1 对处理/对照样本,共 8 个样本),数据处理方式与原始研究一致。

注:如果加载不成功,也可以手动下载,但是此步需要进一步处理才可使用。
地址:https://bioconductor.org/packages/release/data/experiment/html/airway.html
或者使用下载的GSE52778,但是也需要适当的处理才可使用。

4. 标准的 DESeq2 差异分析流程

可从airway中:获取原始整数技术矩阵并构建分组信息——过滤——构建 DESeq2 对象——运行 DESeq2,进行差异基因的比对。

# 标准的分析流程# 2.1 提取数据library(airway)data(airway)count<-assay(airway)# 原始整数计数矩阵col_data<-colData(airway)# 样本注释(含 cell 和 dex)# 构建分组信息(也可以直接从 col_data 提取)group<-data.frame(sample=colnames(count),group=col_data$dex,# "trt" / "untrt"cell=col_data$cell# 细胞系信息,用于校正批次)# 确认样本顺序一致(必须为 TRUE)stopifnot(all(colnames(count)==group$sample))# 2.2 过滤低表达基因(RNA-seq 标准操作,提高统计功效)# 保留至少在 3 个样本中 count >= 10 的基因(可根据实际情况调整阈值)keep<-rowSums(count>=10)>=3count_filter<-count[keep,]cat("过滤前基因数:",nrow(count),"\n")cat("过滤后基因数:",nrow(count_filter),"\n")# 2.3 构建 DESeq2 对象(配对设计,校正细胞系效应)dds<-DESeqDataSetFromMatrix(countData=count_filter,# 使用过滤后的矩阵colData=group,design=~cell+group# 加入 cell 作为协变量)# 明确指定对照组(确保 log2FC 方向正确)dds$group<-relevel(dds$group,ref="untrt")# 2.4 运行 DESeq2dds<-DESeq(dds)# 查看可用的系数名(用于后续对比)resultsNames(dds)


可以看到过滤前后基因数为,过滤前基因数: 63677 ,过滤后基因数: 16596 。此步完成了差异分析,核心包为DESeq2,下步进行差异分析的提取。

5. 提取差异基因

提取差异基因,并且分别保存全部的分析结果和显著的差异基因。

# 2.5 提取两组比较的结果# contrast 参数:c(分组列名, 实验组, 对照组)res<-results(dds,contrast=c("group","trt","untrt"))# 按 p 值排序(最显著的在前)res<-res[order(res$pvalue),]# 转为数据框,并添加基因名列res_df<-as.data.frame(res)res_df$gene<-rownames(res_df)# 保存全部基因的差异结果write.csv(res_df,file="DESeq2_all_gene_result.csv",row.names=FALSE)# 2.6 筛选显著差异基因(阈值:|log2FC| > 1 且 padj < 0.05)res_df$change<-"Stable"res_df$change[res_df$log2FoldChange>1&res_df$padj<0.05]<-"Up"res_df$change[res_df$log2FoldChange<-1&res_df$padj<0.05]<-"Down"# 统计上下调基因数量table(res_df$change)cat("显著上调基因数:",sum(res_df$change=="Up"),"\n")cat("显著下调基因数:",sum(res_df$change=="Down"),"\n")# 2.7 (可选)保存显著差异基因子集sig_genes<-res_df[res_df$change!="Stable",]write.csv(sig_genes,file="DESeq2_sig_genes.csv",row.names=FALSE)# 打印前几个显著基因head(res_df[res_df$change!="Stable",])


可以看到 有显著上调基因511下调基因489

运行到这里我们完成了:提取差异基因,并且保存全部的分析结果和显著的差异基因结果。

后续绘制火山图、富集分析,就可直接使用这数据啦!

今天的生信知识分享就到这里啦!咱们下期见!

以解牛之法析生信,观微雀之形览科研。

http://www.rkmt.cn/news/1539804.html

相关文章:

  • 技术深度解析:WebKettle如何重构企业级数据集成架构
  • C 盘空间不足怎么彻底释放?Windows 11 分层清理全攻略
  • 5分钟告别Windows激活烦恼:KMS_VL_ALL_AIO智能激活全攻略
  • 配置centos7基础环境
  • 认知神经科学研究报告【20260090】
  • 基于Linux CentOS7.9 部署 Haproxy负载均衡集群
  • 2026年|20款实测横比论文降AI工具怎么选?一篇攻略帮你看懂
  • ngx_event_accept
  • 物联网控制小主板 自动售货机
  • knife4j接口文档的使用
  • 2026春见耙耙柑苗木选购指南:正规供应商甄选与行业趋势分析 - 优质品牌商家
  • 马鞍山漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 基于51单片机的步进电机控制系统—正/反转、加/减速
  • ControlNet-v1-1 FP16完全指南:如何在低显存下实现专业级AI图像控制
  • Logistic Regression实战指南:解决二分类落地中的特征缩放、类别不平衡与概率校准
  • 2026年组合密封圈口碑品牌甄选:技术实力与工程案例深度解析 - 优质品牌商家
  • PowerPC平台KVM/QEMU设备直通与VM Exit性能调优实战
  • 数据科学远程训练营:概念、价值与实践选择指南
  • 无动力游乐设备价格,浙江凯奇文旅性价比高,怎么选择 - myqiye
  • 探索PyPSA中的碳排放约束
  • 选购CCS集成母排,优质定制厂家浙江中燕新能源不可错过 - 工业品牌热点
  • 高级手势:PanGesture滑动、PinchGesture缩放的坐标计算(31)
  • 有实力的会议用车品牌企业,温州聚游汽车服务的优势 - mypinpai
  • Qwen3.6不生图却能生成封面:本地Agent绘图工作流实战
  • 从HX711到MCP3551:高精度称重传感器电路设计全解析
  • 注册公司服务推荐哪家,嘉简财税优势在哪 - 工业品牌热点
  • 微信群内怎么发起投票,云帆投票+西瓜评选+腾讯投票,深度测评 - 投票小程序
  • 多维聚合实战:用Python构建可演化的数据立方体
  • 【硬核进阶】别再被阻塞拖垮!一文讲透 Tokio + async/await,榨干 Rust 高并发性能
  • 大白话带你速通 Claude Code Skill:如何让你的 AI 编程助手瞬间“社会化”?