2025年基因表达差异分析R工具包DESeq2的详细使用方法和使用案例

基因表达差异分析R工具包DESeq2的详细使用方法和使用案例DESeq2 是一种常用的差异表达基因分析工具 可用于 RNA seq 数据的差异表达分析 下面是 DESeq2 的详细使用步骤和全部脚本示例 文章参考 Moderated estimation of fold change and dispersion for RNA seq data with DESeq2 Genome Biology Full Text

大家好,我是讯享网,很高兴认识大家。


讯享网

DESeq2是一种常用的差异表达基因分析工具,可用于RNA-seq数据的差异表达分析。下面是DESeq2的详细使用步骤和全部脚本示例。

文章参考

Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2 | Genome Biology | Full Text (biomedcentral.com)

bioconda源对工具包的介绍:

Bioconductor - DESeq2

安装

下面是在R中安装DESeq2的详细步骤:

  1. 安装R和RStudio

    • 如果你还没有安装R,可以在R官方网站下载并安装最新版本的R。
    • 推荐使用RStudio作为R语言的集成开发环境。你可以在RStudio官网下载并安装适合你操作系统的版本。
  2. 启动R或RStudio

    • 打开R或者RStudio。
  3. 安装DESeq2包

    • 在R或RStudio的命令行中输入以下命令安装DESeq2包:
    if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("DESeq2") 

    讯享网

    这将会从Bioconductor仓库安装DESeq2包及其依赖项。

  4. 加载DESeq2包

    • 安装完成后,在R或RStudio中输入以下命令加载DESeq2包:
    讯享网library(DESeq2)

    确保没有报错,这样DESeq2包就已经成功加载了。

安装完成后,你就可以使用DESeq2进行基因表达差异分析了。记得在分析之前准备好你的RNA-seq数据并按照DESeq2的文档或教程进行分析。

DESeq2 的完整使用步骤和示例分析脚本,以及每个步骤的输入、输出和解释。

步骤 1: 读取和整理数据

首先,加载必要的 R 包和数据文件。数据应该包括表达矩阵和样本信息。

# 读取 DESeq2 包 library(DESeq2) # 读取表达矩阵 countData <- as.matrix(read.csv("count_matrix.csv", row.names = 1)) # 读取样本信息 sampleInfo <- read.csv("sample_info.csv") # 创建 DESeq2 数据对象 dds <- DESeqDataSetFromMatrix(countData, colData = sampleInfo, design = ~ condition) 
  • count_matrix.csv: 包含基因或转录本的表达矩阵,行代表基因或转录本,列代表样本。
  • sample_info.csv: 包含每个样本的信息,例如条件、分组等。

步骤 2: 数据标准化和差异表达分析

使用 DESeq2 对数据进行标准化和差异表达分析。

讯享网# 标准化数据 dds <- DESeq(dds) # 进行差异表达分析 res <- results(dds) 

步骤 3: 结果解释和可视化

对差异表达结果进行解释和可视化。

# 查看差异表达基因 topGenes <- head(rownames(res[order(res$padj), ]), 10) # 输出差异表达基因 write.csv(res, file = "deseq2_results.csv") # 绘制差异表达图 plotCounts(dds, gene = topGenes, intgroup = "condition") 
  • deseq2_results.csv: 包含差异表达分析结果的输出文件。

解释和注意事项:

  • DESeqDataSetFromMatrix(): 用于创建 DESeq2 数据对象,其中 countData 是表达矩阵,sampleInfo 包含样本信息,design 参数指定实验设计。
  • DESeq(): 对数据进行归一化和标准化,准备进行差异表达分析。
  • results(): 提取差异表达分析的结果,包括基因表达差异统计信息。
  • 结果包括基因表达水平的差异统计指标,如 fold change、调整的 p 值(padj)等。
  • plotCounts(): 用于绘制基因表达水平的差异示意图,以更直观地展示不同条件下基因的表达情况。

使用案例

以下是三个使用 DESeq2 工具包的案例,包括完整的脚本以及输入输出文件内容和格式的详细解释。

案例 1: 基因差异表达分析

输入文件:

  • count_matrix.csv: 包含基因表达计数矩阵,行代表基因,列代表样本。
  • sample_info.csv: 包含每个样本的信息,例如条件或组别。

脚本:

讯享网# 读取 DESeq2 包 library(DESeq2) # 读取表达矩阵和样本信息 countData <- as.matrix(read.csv("count_matrix.csv", row.names = 1)) sampleInfo <- read.csv("sample_info.csv") # 创建 DESeq2 数据对象 dds <- DESeqDataSetFromMatrix(countData, colData = sampleInfo, design = ~ condition) # 标准化数据和进行差异表达分析 dds <- DESeq(dds) res <- results(dds) # 输出差异表达基因列表和统计信息 write.csv(res, file = "deseq2_results.csv") # 绘制差异表达基因的表达图 topGenes <- head(rownames(res[order(res$padj), ]), 10) plotCounts(dds, gene = topGenes, intgroup = "condition") 

输出文件:

  • deseq2_results.csv: 包含差异表达分析结果的输出文件。包括基因、fold change、p 值、调整的 p 值等信息。
  • 图形文件:包含差异表达基因的表达图,显示不同条件下基因的表达情况。

案例 2: 多组实验设计的差异分析

输入文件:

  • count_matrix.csv
  • sample_info_multigroup.csv: 包含多组实验设计的样本信息。

脚本:

# 读取 DESeq2 包 library(DESeq2) # 读取表达矩阵和样本信息 countData <- as.matrix(read.csv("count_matrix.csv", row.names = 1)) sampleInfo <- read.csv("sample_info_multigroup.csv") # 创建 DESeq2 数据对象(多组实验设计) dds <- DESeqDataSetFromMatrix(countData, colData = sampleInfo, design = ~ group + condition) # 标准化数据和进行差异表达分析 dds <- DESeq(dds) res <- results(dds) # 输出差异表达基因列表和统计信息 write.csv(res, file = "deseq2_results_multigroup.csv") 

输出文件:

  • deseq2_results_multigroup.csv: 包含多组实验设计差异表达分析结果的输出文件。
gene_id baseMean log2FoldChange lfcSE stat pvalue padj
GeneA 100 1.5 0.2 7.2 0.0001 0.001
GeneB 80 -0.8 0.3 -4.5 0.0002 0.002
GeneC 50 2.1 0.5 6 0.0003 0.003
  • gene_id: 基因或转录本的标识符。
  • baseMean: 平均表达量。
  • log2FoldChange: 对数变换后的 fold change,表示在不同条件之间的表达倍数变化。
  • lfcSE: log2 fold change 的标准误差。
  • stat: 统计检验值。
  • pvalue: 未经校正的 p 值。
  • padj: 经过多重假设检验校正后的调整 p 值(通常使用 FDR 校正),用于控制假阳性发现率。

案例 3: 时间序列分析

输入文件:

  • count_matrix_timeseries.csv: 包含时间序列实验的基因表达计数矩阵。
GeneID Sample1 Sample2 Sample3 Sample4
GeneA 10 15 20 25
GeneB 5 8 12 18
GeneC 30 35 40 45
...
  • sample_info_timeseries.csv: 包含时间序列实验的样本信息,包括时间点等信息。
Sample TimePoint Treatment
Sample1 0 Control
Sample2 3 DrugA
Sample3 6 DrugA
Sample4 9 Control
...

脚本:

讯享网# 读取 DESeq2 包 library(DESeq2) # 读取表达矩阵和样本信息 countData <- as.matrix(read.csv("count_matrix_timeseries.csv", row.names = 1)) sampleInfo <- read.csv("sample_info_timeseries.csv") # 创建 DESeq2 数据对象(时间序列实验设计) dds <- DESeqDataSetFromMatrix(countData, colData = sampleInfo, design = ~ time_point) # 标准化数据和进行差异表达分析 dds <- DESeq(dds) res <- results(dds) # 输出差异表达基因列表和统计信息 write.csv(res, file = "deseq2_results_timeseries.csv") 

输出文件:

  • deseq2_results_timeseries.csv: 包含时间序列实验差异表达分析结果的输出文件。

 DESeq2分析结果进行差异表达火山图的绘制

DESeq2 的结果文件 deseq2_results.csv,文件的格式类似于:

gene_id baseMean log2FoldChange lfcSE stat pvalue padj
GeneA 100 1.5 0.2 7.2 0.0001 0.001
GeneB 80 -0.8 0.3 -4.5 0.0002 0.002
GeneC 50 2.1 0.5 6 0.0003 0.003

使用 R 语言和 ggplot2 库来绘制火山图的示例代码:

# 导入必要的库 library(ggplot2) library(dplyr) # 用于数据处理 # 读取差异表达结果文件 results <- read.csv("deseq2_results.csv") # 设定显著性阈值(例如,调整的 p 值) threshold <- 0.05 # 根据显著性阈值筛选差异表达基因 significant_genes <- results %>% filter(padj < threshold) # 绘制火山图 ggplot(results, aes(x = log2FoldChange, y = -log10(padj), color = ifelse(padj < threshold, "red", "black"))) + geom_point(size = 1.5) + scale_color_manual(values = c("black", "red"), labels = c("Not significant", "Significant")) + labs(x = "log2(Fold Change)", y = "-log10(adjusted p-value)", title = "Volcano Plot of Differential Expression") + theme_minimal() 

这段代码将根据调整的 p 值(padj)和 fold change(log2FoldChange)绘制火山图。显著性基因将以红色标记,非显著性基因将以黑色标记。您可以调整 threshold 的值来控制显著性。

小讯
上一篇 2025-02-14 13:27
下一篇 2025-04-07 08:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/124395.html