对差异表达结果进行解释和可视化。
# 查看差异表达基因
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 |
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
给大家整理的电子书资料:
[外链图片转存中…(img-era1D5hP-1713057292572)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-er9hfmJC-1713057292572)]