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的详细步骤:
-
安装R和RStudio:
- 如果你还没有安装R,可以在R官方网站下载并安装最新版本的R。
- 推荐使用RStudio作为R语言的集成开发环境。你可以在RStudio官网下载并安装适合你操作系统的版本。
-
启动R或RStudio:
- 打开R或者RStudio。
-
安装DESeq2包:
- 在R或RStudio的命令行中输入以下命令安装DESeq2包:
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("DESeq2")
这将会从Bioconductor仓库安装DESeq2包及其依赖项。
-
加载DESeq2包:
- 安装完成后,在R或RStudio中输入以下命令加载DESeq2包:
library(DESeq2)
确保没有报错,这样DESeq2包就已经成功加载了。
安装完成后,你就可以使用DESeq2进行基因表达差异分析了。记得在分析之前准备好你的RNA-seq数据并按照DESeq2的文档或教程进行分析。
DESeq2 的完整使用步骤和示例分析脚本,以及每个步骤的输入、输出和解释。
步骤 1: 读取和整理数据
首先,加载必要的 R 包和数据文件。数据应该包括表达矩阵和样本信息。
# 读取 DESeq2 包
library(DESeq2)
# 读取表达矩阵
countData
-
count_matrix.csv
: 包含基因或转录本的表达矩阵,行代表基因或转录本,列代表样本。 -
sample_info.csv
: 包含每个样本的信息,例如条件、分组等。
步骤 2: 数据标准化和差异表达分析
使用 DESeq2 对数据进行标准化和差异表达分析。
# 标准化数据
dds
步骤 3: 结果解释和可视化
对差异表达结果进行解释和可视化。
# 查看差异表达基因
topGenes
-
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
输出文件:
-
deseq2_results.csv
: 包含差异表达分析结果的输出文件。包括基因、fold change、p 值、调整的 p 值等信息。 - 图形文件:包含差异表达基因的表达图,显示不同条件下基因的表达情况。
案例 2: 多组实验设计的差异分析
输入文件:
count_matrix.csv
-
sample_info_multigroup.csv
: 包含多组实验设计的样本信息。
脚本:
# 读取 DESeq2 包
library(DESeq2)
# 读取表达矩阵和样本信息
countData
输出文件:
-
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
输出文件:
-
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 %
filter(padj
这段代码将根据调整的 p 值(padj
)和 fold change(log2FoldChange
)绘制火山图。显著性基因将以红色标记,非显著性基因将以黑色标记。您可以调整 threshold
的值来控制显著性。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
文章中高级词汇较多,句子长且复杂,翻译比较难,我尽量用简单易懂的语言,为此我在每个问题的末尾,单独加了一个解读,帮助大家理解。尽管如此,难免会有疏漏,欢迎广大读者斧正,同时也欢迎大家点赞、转发。 感谢字节同学翻译最后部分,感谢支持 写在前面 仁者见仁 谷歌提出…