RNA-seq 详细教程: `DESeq2` 差异表达分析(7)

news2024/12/27 11:02:27

学习目标

  1. 了解如何设计公式
  2. 了解如何使用 DESeq2 执行差异表达分析

1. DE 分析

差异表达分析工作流程的最后一步是将原始计数拟合到 NB 模型并对差异表达基因进行统计检验。在这一步中,我们本质上是想确定不同样本组的平均表达水平是否存在显著差异。

Paul Pavlidis, UBC
Paul Pavlidis, UBC

DESeq2 论文发表于 2014 年,但该软件包不断更新并通过 BioconductorR 中使用。它建立在分散估计和 DSSedgeR 中的广义线性模型之上。

使用 DESeq2 进行差异表达分析涉及多个步骤,如下面流程图中蓝色部分所示。简而言之,DESeq2 将对原始计数进行建模,使用归一化因子(大小因子)来解决文库深度的差异。然后,它将估计基因方面的分散并缩小这些估计以生成更准确的分散估计来模拟计数。最后,DESeq2 将拟合负二项式模型并使用 Wald 检验或似然比检验进行假设检验。

Differential expression analysis
Differential expression analysis

2. 设计公式

在执行差异表达分析之前,最好通过 QC 期间的探索或先验知识了解数据中存在哪些变异来源。一旦了解了主要的变异来源,就可以在分析之前将其移除,或者通过将它们包含在设计公式中来在统计模型中对其进行控制。

设计公式告诉统计软件要控制的已知变异来源,以及差异表达测试期间要测试的感兴趣因素。例如,如果您知道 sex 是数据变异的重要来源,那么您的模型中就应该包含 sex。设计公式应该包含元数据中的所有因素,这些因素可以解释数据中主要的变化来源。公式中输入的最后一个因素应该是感兴趣的条件。

例如,假设您有以下元数据:

metadata
metadata

如果您想检查处理之间的表达差异,并且您知道变异的主要来源包括 sexage,那么您的设计公式将是:

design = ~ sex + age + treatment

波浪号 (~) 应始终位于您的因子之前,并告诉 DESeq2 使用以下公式对计数进行建模。请注意,设计公式中包含的因素需要与元数据中的列名称相匹配

2.1. 复杂情况

DESeq2 还允许分析更加复杂的情况。您可以通过在设计公式中指定来探索相互作用或“差异中的差异”。例如,如果你想探索 sex 对治疗效果的影响,你可以在设计公式中指定如下:

design = ~ sex + age + treatment + sex:treatment

由于交互项 sex:treatment 在公式的最后,因此 DESeq2 输出的结果将输出该项的结果。

3. MOV10 DE 分析

现在我们知道如何指定 DESeq2 使用的模型,可以在原始计数上运行差异表达管道。

要从我们的原始计数数据中得到我们的差异表达结果,只需要运行 2 行代码!

首先,我们像在“计数归一化”课程中所做的那样创建一个 DESeqDataSet,并指定包含我们的原始计数的 txi 对象、元数据变量,并提供我们的设计公式:

# 创建 DESeq2Dataset 对象
dds <- DESeqDataSetFromTximport(txi, colData = meta, design = ~ sampletype)

然后,为了运行差异表达分析,我们使用 DESeq() 函数。

# 运行
dds <- DESeq(dds)

通过将函数的结果重新分配回相同的变量名 (dds),我们可以填充 DESeqDataSet 对象。

DESeqDataSet
DESeqDataSet

从归一化到线性建模,一切都是通过使用上面这个函数进行的!此函数将针对它执行的各个步骤打印下面的消息:

estimating size factors
estimating dispersions
gene-wise dispersion estimates
mean-dispersion relationship
final dispersion estimates
fitting model and testing

我们将在接下来的几节课中讨论每个步骤中发生的事情,但是执行这些步骤的代码在上面的两行中。


欢迎Star -> 学习目录

更多教程 -> 学习目录


本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言第二十课:实用调试技巧

目录 前言&#xff1a; 一、Bug&#xff1a; 二、调试&#xff1a; 1.调试是什么&#xff1a; 2.调试的基本步骤&#xff1a; 3. Debug 与 Release &#xff1a; 三、在Windows环境下进行调试&#xff1a; 1.调试环境的准备&#xff1a; 2.调试的快捷键&#xff1a; 3.调试…

【嵌入式硬件芯片开发笔记】HART调制解调器AD5700芯片配置流程

【嵌入式硬件芯片开发笔记】HART调制解调器AD5700芯片配置流程 低功耗HART调制解调器 适用于AD5700/AD5700-1 我的是XTAL_EN接地&#xff0c;CLK_CFG的两个引脚由同一个GPIO控制 初始时HART_CLK_CFG输出低电平 由RTS引脚控制调制/解调。当RTS处于高电平时&#xff0c;为解调&…

React源码(一): render createElement

React源码——渲染&#xff08;render && createElement&#xff09;的简单实现 前言 当前市面上公司对React需求越来越大主, 对于React的源码学习必须提上日程 初始化项目 React脚手架创建项目 全局安装npm install -g create-react-app创建项目create-react-app M…

Web大学生网页作业成品——仿腾讯游戏官网网站设计与实现(HTML+CSS+JavaScript)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

常规构件的立面CAD图案绘制

今天绘制的这个常规构件CAD立面图形呢&#xff0c;用到的都是很基础的CAD命令&#xff0c;有直线、修剪、倒角和旋转等&#xff0c;绘制出来也是很简单的&#xff0c;可以跟着一起操作一下 目标对象 操作步骤 1.使用直线命令绘制出一下线段&#xff0c;形成一个封闭图形 2.用…

【Windows基础】本地安全策略

本地安全策略基本内容 概念 对登陆到计算机上的账号定义一些安全设置&#xff0c;在没有活动目录集中管理的情况下&#xff0c;本地管理员必须为计算机进行设置以确保其安全。 主要是对登录到计算机得账户进行一些安全设置主要影响是本地计算机安全设置 打开方式 三种方式&…

python的distutils、setuptools模块

python中安装包的方式有很多种&#xff1a; 源码包&#xff1a;python setup.py install在线安装&#xff1a;pip install 包名&#xff08;linux&#xff09; / easy_install 包名(window) python包在开发中十分常见&#xff0c;一般的使用套路是所有的功能做一个python模块包…

一个bug,干倒一家估值1.6亿美元的公司

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注&#xff01; 动态类型一时爽&#xff0c;代码重构火葬场。 ——题记 你生涯中写过的最严重的bug是什么&#xff1f; 我们日常接触的bug&#xff0c;无非是页面崩溃&a…

【Zookeeper】学习笔记(一)

Zookeeper学习笔记一、概述1.1、Zookeeper1.2、Zookeeper工作机制1.3、Zookeeper特点1.4、数据结构1.6、应用场景1.6.1、统一命名服务1.6.2、统一配置管理1.6.3、统一集群管理1.6.4、服务器动态上下线1.6.5、软负载均衡二、下载安装2.1、集群规划2.1、集群规部署三、zk选举3.1、…

A-Level商务例题解析及练习

今日知识点&#xff1a; Marketing mix Place Price Promotion Product例题 Q: Discuss the best ways a car manufacturer could use the marketing mix to increase its share of the market. (20)解析 Answers could include: Marketing mix as a framework/process for ide…

基于RFID的物流智能仓储系统的研究(基于STM32的智能仓储系统)

提示&#xff1a;记录做的毕设 文章目录前言一、功能要求:二、代码思路三、硬件说明四、部分代码以及框图等资料五、联系我喜欢请点赞哦&#xff01;前言 随着经济的发展&#xff0c;对企业的生产经营要求提高&#xff0c;企业必须综合利用各种先进技术&#xff0c;在网络与信…

VUE3 响应式 API 之 toRef 与 toRefs

相信各位开发者看到这里时&#xff0c;应该已经对 ref 和 reactive API 都有所了解了&#xff0c;为了方便开发者使用&#xff0c; Vue 3 还推出了两个与之相关的 API &#xff1a; toRef 和 toRefs &#xff0c;都是用于 reactive 向 ref 转换。 各自的作用 这两个 API 在拼写…

Java安全--CC1的补充和CC6

CC1的补充 上一次讲的是cc链的一种形式&#xff0c;这个补充的cc链子是yso的cc链。 这个链子确实比较麻烦&#xff0c;但是和我们下一步要学习的cc6有比较紧的联系。所以做一下补充&#xff0c;值得一提的是这个链子也确实很巧妙 我们看一下两条链子的分歧在哪里&#xff1a; 从…

[附源码]Python计算机毕业设计Django影评网站系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

在地图上基于OpenLayers实现点/线/面静态的绘制显示

在做GIS相关的工作过程中&#xff0c;是离不开矢量的数据的。矢量作为最基础的数据形式&#xff0c;一般通用在各个项目中。在导航软件开发或者应用中&#xff0c;点/线/面的标记&#xff0c;标绘&#xff0c;显示等都是不可缺少的。本文主要是来介绍在地图上基于OpenLayers实现…

Qt-数据库开发-QTableView操作数据库(2)

Qt-数据库开发-QTableView操作数据库、自增Key 文章目录Qt-数据库开发-QTableView操作数据库、自增Key1、概述2、实现效果3、主要代码4、完整源代码更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;数据库开发 &#x1f448; 1、概述 在开发数据库开发时…

40 | Linux安装node.js

1 环境准备 系统为ubuntu系统 2 下载压缩包 2.1 参考地址&#xff1a; https://nodejs.org/zh-cn/download/releases/2.2 创建文件夹 mkdir software wget https://nodejs.org/download/release/v16.18.0/node-v16.18.0-linux-x64.tar.gz2.3 解压 2.3.1 解压二进制文件…

docker——对镜像的操控笔记

一:镜像在哪里 这个问题问到点子上了,就好像说肉好吃,那你告诉我哪里才能买的到? 1. docker官方渠道 docker官方有一个 Docker Hub 网址,你能想到和想不到的镜像这上面都有,比如web开发者熟悉的nginx,redis,mongodb等等,而且还告诉 你怎么去下载,如下图: 接下来你可…

【Zookeeper】学习笔记(二)

Zookeeper学习笔记四、客户端命令4.1、新增节点4.2、查询节点信息4.3、节点类型4.4、更新节点4.5、删除节点4.6、监听器五、SpringBOOT整合Zookeeper六、写数据流程6.1、写流程之写入请求直接发送给Leader节点6.2、写流程之写入请求发送给follower节点七、服务器动态上下线监听…

Matlab 中 global 函数实例解析

目录 global 函数 案例分析 1 案例分析 2 使用golbal的优点 1. 传递大数据的参数 2. 过多的常量需要传递 global 函数 比如在主函数里面&#xff0c;你需要设置 Nc 这个变量是一个全局变量&#xff0c;就需要声明一下&#xff1a; global Nc; 然后在子函数里面你又用到了…