专栏首页生物信息云基因芯片数据分析(八):DESeq2差异分析实战案例

基因芯片数据分析(八):DESeq2差异分析实战案例

我们在前2篇文章分别介绍了edgeR和DESe

基因芯片数据分析(六):DESeq2包的基本原理 我们接下来通过一个案例介绍利用edgeR进行差异分析。

基因芯片数据分析(七):edgeR差异分析实战案例 本文接着介绍DESeq2包进行差异分析。

包的安装和加载

# 包的安装和加载
BiocManager::install("DESeq2")
library("DESeq2")

读入数据

这里我们用的数据是一个原始的counts数据的Excel文件,和上一讲中用的数据一样(想运行案例,文末获取文件)

# 读入原始的counts数据
counts <- read.table("gene_counts.xls", sep = "\t", header = T, row.names = 1)

导入的数据我们通过head()函数查看前6行。

行名A1,A2,A3,B1,B2,B3为样本名,列名是基因名。

创建分组

设置实验组别,在基因芯片数据分析(六):DESeq2包的基本原理这篇文章中我们介绍基本原理时,有一步需要选择参考样本,在实际分析中,我们可以自己选择参考样本,一般都是对照组作为参考样本,在DESeq2中,对照组是是,control样本,实验组是case。原始数据中有6个样本,对照和实验组各三个。所以我们可以创建一个分组向量。

# 创建分组
colData <- data.frame(row.names = c("A1","A2","A3","B1","B2","B3"),
                      condition =
                        factor(c("control","control","control","case","case","case"),
                               levels = c("control","case")))

构建DESeqDataSet对象

构建DESeqDataSet对象用于分析,colData指定我们的样本信息和分组列表,design = ~ condition表示分组信息安装colData的condition列分组。

#构建DESeqDataSet对象
dds <- DESeqDataSetFromMatrix(countData = counts, colData = colData,
                              design = ~ condition)

差异分析

# 函数分析差异
dds <- DESeq(dds)
# 计算标准化因子
sizeFactors(dds)
#提取差异表达结果
res <- results(dds)
class(res)
res <- as.data.frame(res)

结果处理与保存

# 添加一列
res <- cbind(rownames(res), res)
# 重命名列名
colnames(res) <- c("gene_id", "baseMean", "log2FoldChange", "lfcSE", "stat",
                   "pval", "padj")
#保存文件到本地
write.table(res, "case-vs-control-all-DESeq2.gene.xls",
            sep = "\t", col.names = TRUE, row.names = FALSE, quote = FALSE,
            na = "")

差异基因筛选

这里和前文基因芯片数据分析(七):edgeR差异分析实战案例差不多,不多解释!

# 获取差异基因
resSig <- res[which(res$pval < 0.05 & abs(res$log2FoldChange) > 1),]
resSig[which(resSig$log2FoldChange > 0), "up_down"] <- "Up"
resSig[which(resSig$log2FoldChange < 0), "up_down"] <- "Down"
write.table(resSig, "case-vs-control-diff-pval-0.05-FC-2-DESeq2.gene.xls",
            sep = "\t", col.names = TRUE, row.names = FALSE, quote = FALSE, na = "")

这样我们就可以获取差异表达的基因了,可以用于后面的作图,比如火山图!

本文分享自微信公众号 - MedBioInfoCloud(MedBioInfoCloud),作者:DoubleHelix

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言数据分析与挖掘(第四章):回归分析(2)——多元线性回归

    上一篇文章中介绍了一元线性回归(R语言数据分析与挖掘(第四章):回归分析(1)——一元回归分析),然而,在实际操作中,多元性回归会更多见,因为一个响应变量会对应...

    DoubleHelix
  • TCGA数据库:miRNA数据下载与整理

    关于miRNA的基础知识可参考文章:医学科研实验基础知识笔记(十一):非编码RNA。

    DoubleHelix
  • 分子对接教程 | (8) PyMOL可视化对接结果

    或者通过命令cd F:\AutoDock来实现,这与window的dos命令行和Linux系统的cd(Change Directory)命令一样。

    DoubleHelix
  • 『简书API:jianshu 基于golang -- 用法介绍 (2)』

    谢伟
  • Linux使用NetworkManager随机生成你的MAC地址

    今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 Wi-Fi,就能通过网络与外界保持联系。但现在的 Wi-Fi 热点们大都能够通过 每...

    砸漏
  • Express实现生成二维码接口

    越陌度阡
  • 1、根据SC数据库用SQL语句完成以下任务。

    update SC set Grade=Grade+5 whereGrade<60;

    week
  • wareshark网络协议分析之ARP

    一、ARP协议简介 简单的说ARP协议就是实现ip地址到物理地址的映射。当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地...

    用户1215536
  • Effective Modern C++翻译(5)-条款4:了解如何观察推导出的类型

    条款4:了解如何观察推导出的类型 那些想要知道编译器推导出的类型的人通常分为两种,第一种是实用主义者,他们的动力通常来自于软件产生的问题(例如他们还在调试解决中...

    magicsoar
  • 网卡虚拟网三种技术normal,VMDQ,SR-IOV原理对比讲解

    目前常见的网卡虚拟化技术有三种,Normal,VMDQ,SR_IOV,这三种技术中,SR-IOV技术性能最好,经常被用于对网络质量要求较高的场景下。Normal...

    用户2063990

扫码关注云+社区

领取腾讯云代金券