RNA-seq 详细教程:假设检验和多重检验(8)

news2024/12/24 3:49:04

学习目标

  1. 了解模型拟合的过程
  2. 比较两种假设检验方法(Wald test vs. LRT)
  3. 了解多重测试校正的重要性
  4. 了解用于多重测试校正的不同方法

1. 模型拟合和假设检验

DESeq2 工作流程的最后一步是对每个基因进行计数并将其拟合到模型中并测试差异表达。

Hypothesis testing
Hypothesis testing

2. 广义线性模型

如前所述,RNA-seq 生成的计数数据表现出过度分散(方差 > 均值),用于对计数建模的统计分布需要考虑到这一点。因此,DESeq2 使用负二项分布通过以下公式对 RNA-seq 计数进行建模:

equation
equation

所需的两个参数是size factordispersion estimate。接下来使用广义线性模型 (GLM) 来拟合数据。建模是一种数学形式化的方法,用于在给定一组参数的情况下估算数据的方式。模型拟合后,将估计每个样本组的系数及其标准误差。系数是 log2 倍数变化的估计值,将用作假设检验的输入。

3. 假设检验

假设检验的第一步是为每个基因建立一个零假设。在我们的例子中,原假设是两个样本组之间没有差异表达 (LFC == 0)。然后,我们使用统计检验来根据观察到的数据确定原假设是否为真。

3.1. Wald test

DESeq2 中,Wald 检验是比较两组时用于假设检验的默认值。 Wald 检验是通常对已通过最大似然估计的参数执行的检验。在我们的案例中,我们正在测试每个基因模型系数 (LFC),这些系数是使用分散等参数得出的,这些参数是使用最大似然估计的。

DESeq2 通过以下方式实施 Wald 测试:

  1. 取 LFC 并将其除以标准误差,得到 z 统计量
  2. 将 z 统计量与标准正态分布进行比较,并计算 p 值,报告随机选择至少与观察值一样极端的 z 统计量的概率
  3. 如果 p 值很小,我们拒绝零假设并声明有证据反对零假设(即基因差异表达)

模型拟合和 Wald 检验先前已作为 DESeq() 函数的一部分运行:

# 以下仅作示例,上一个教程已经运行
dds <- DESeqDataSetFromTximport(txi, colData = meta, design = ~ sampletype)

dds <- DESeq(dds)

3.2. 似然比检验

当比较两个以上的样本类别时,DESeq2 还提供似然比检验 (LRT) 替代假设检验。LRT 不是评估一个基因的表达在一个类别中相对于另一个类别是上调还是下调,而是识别在不同样本类别中在任何方向上表达发生变化的基因。

  • 这与 Wald 检验相比如何?

Wald 检验(默认)仅估计每个基因一个模型并评估 LFC == 0 的原假设。

对于似然比检验,还对已通过最大似然估计的参数执行。对于这个测试,每个基因估计两个模型;将一个模型的拟合度与另一个模型的拟合度进行比较。

Likelihood Ratio
Likelihood Ratio
  • m1 是简化模型(即删除主要因素项的设计公式)
  • m2 是完整模型(即您在创建 dds 对象时提供的完整设计公式)

在这里,我们正在评估完整模型与简化模型一样适合的原假设。如果我们拒绝零假设,这表明完整模型(以及我们感兴趣的主要因素)解释了大量变异,因此该基因在不同水平上差异表达。 DESeq2 通过使用偏差分析 (ANODEV) 来比较两个模型拟合来实现 LRT。结果表明,LR 服从卡方分布,这可用于计算和关联的 p 值。

要使用 LRT,我们使用 DESeq() 函数,但这次添加两个参数:

  1. 指定我们要使用 LRT 测试
  2. “简化”模型
# Likelihood ratio test
dds_lrt <- DESeq(dds, test="LRT", reduced = ~ 1)

由于我们的“完整”模型只有一个因素(样本类型),“简化”模型(删除该因素)在我们的设计公式中没有留下任何东西。 DESeq2 无法拟合设计公式中没有任何内容的模型,因此在没有其他协变量的情况下,截距使用语法 ~ 1 建模。

4. Multiple test correction

无论我们使用 Wald 检验还是 LRT,每个经过检验的基因都会与一个 p 值相关联。我们正是用这个结果来确定哪些基因被认为是显著差异表达的。但是,我们不能直接使用 p 值。

4.1. p-value

显著性截断值 p < 0.05 的基因意味着它有 5% 的几率是假阳性。例如,如果我们测试 20,000 个基因的差异表达,在 p < 0.05 时,我们预计会偶然发现 1,000 个基因。如果我们发现总共有 3000 个基因存在差异表达,那么大约三分之一的基因是假阳性!

由于每个 p 值都是单个测试(单个基因)的结果。我们测试的基因越多,我们的假阳性率就越大。这就是多重检验问题。

4.2. 校正

多重检验有几种常见的校正方法:

  • Bonferroni:调整后的 p 值计算方式为:p 值 * m(m = 测试总数)。这是一种非常保守的方法,假阴性的可能性很高,因此通常不推荐使用。
  • FDR/Benjamini-Hochberg: Benjamini 和 Hochberg (1995) 定义了错误发现率 (FDR) 的概念,并创建了一种算法,以在给定独立 p 值列表的情况下将预期 FDR 控制在指定水平以下。
  • Q-value / Storey method: 称该特征为重要时可达到的最低 FDR。例如,如果基因 X 的 q 值为 0.013,则表示 p 值至少与基因 X 一样小的基因中有 1.3% 是假阳性。

DESeq2 通过去除那些在测试前不太可能显著 DE 的基因,例如那些具有低计数和异常样本(基因级 QC)的基因,帮助减少测试的基因数量。但是,还实施了多重测试校正,以使用 Benjamini-Hochberg 程序的解释来降低错误发现率。

4.3. FDR < 0.05

通过将 FDR 截止值设置为 < 0.05,我们是说我们预期差异表达基因中的假阳性比例为 5%。例如,如果您将 500 个基因称为差异表达,FDR 截断值为 0.05,您预计其中 25 个是假阳性。


欢迎Star -> 学习目录

更多教程 -> 学习目录


本文由 mdnice 多平台发布

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

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

相关文章

osgEarth各个示例分析目录

概述 由于数字地球项目需要osgEarth的代码知识&#xff0c;故决定学习osgEarth的示例&#xff0c;示例中有很多可以借鉴的内容。以下是分析目录&#xff0c;完全是随机进行的&#xff0c;并没有什么上下文逻辑。 每一篇代码边学习边分析&#xff0c;如果有错误&#xff0c;请…

【Java面试】说说JVM的内存结构以及他们那些会产生内存溢出?

文章目录内存结构内存溢出的产生内存结构 对于JVM的内存结构&#xff0c;我将按照上面两张图配合来讲。 Java Source就是我们的Java源代码&#xff0c;经过JVM编译器编译之后变为Java Class也称Java字节码文件。当我们运行java命令对字节码文件进行运行的时候&#xff0c;将会…

深度学习-三维卷积神经网络(3DCNN)

1. 3DCNN理解 2D卷积仅仅考虑2D图片的空间信息&#xff0c;所以只适用于单张2D图片的视觉理解任务。在处理3D图像或视频时&#xff0c;网络的输入多了一个维度&#xff0c;输入由(c,height,width)(c,height,width)(c,height,width)变为了(c,depth,height,width)(c,depth,height…

计算机毕业设计django基于python学生考试成绩数据分析与可视化系统

项目介绍 随着社会的逐步发展,计算机网络技术对人们工作、生活影响是全面且深入的。基于计算机网络的管理系统越来越受到人们的欢迎,人们可以通过基于网络的管理系统进行实时数据信息查询、管理数据信息等,给人们的生活、工作带来便利。 在学校的日常管理工作中,学生成绩的统计…

【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)

需要源码或运行有问题请点赞关注收藏后评论区留言私信~~~ 一、imgaug简介 imguag使一个用于机器学习实验中图像增强的Python依赖库&#xff0c;支持Python2.7和Python3.4以上的版本&#xff0c;它支持多种图像增强技术&#xff0c;并允许轻松地组合这些技术&#xff0c;具有简…

uniapp中如何使用vuex进行状态管理(登录小案例讲解)

前言 本篇文章来讲解uniapp中如何使用vuex来实现状态管理&#xff0c;后面会讲实现登录状态管理的案例。如果之前学过vuex全家桶的同学那应该没啥问题&#xff0c;在uniapp中使用vuex和vue中基本是一样的。 什么是vuex 简单来说就是vue中的状态管理仓库&#xff0c;对于vuex…

从文件包含到RCE方法

前言 大家在参加众测的行动时&#xff0c;若是发现了以下基础危害不大的漏洞&#xff0c;不建议直接提交的&#xff0c;而是应该想办法看&#xff0c;能不能对该漏洞进行升级&#xff0c;扩大其危害&#xff0c;多拿点奖励。当然&#xff0c;文件包含不算常见&#xff0c;经常…

车床零件加工调度问题

目录 题目 思路 代码 运行结果 题目 某车间需要用一台车床和一台加工A&#xff0c;B&#xff0c;C&#xff0c;D4个零件。每个零件都需要先用车床加工&#xff0c;再用加工。车床和加工每个零件所需的工时&#xff08;包括加工前的准备时间以及加工后的处理时间)如下表所示。…

移动端APP测试常见面试题精析

现在面试测试职位&#xff0c;要求非常全面&#xff0c;那么APP测试一般需要哪些技术呢&#xff1f;下面总结了APP测试常见面试题&#xff1a; 1.Android四大组件? Activity:描述UI&#xff0c;并且处理用户与机器屏幕的交互。应用程序中&#xff0c;一个Activity就相当于手…

c++ 基础(新手入门必看)

C基础讲解&#xff0c;用于C语言向C的衔接 文章目录命名空间C输入输出缺省参数函数重载引用内联函数auto关键字基于范围for循环指针空值 -- nullptr命名空间 如果你以前看到过C的程序&#xff0c;那么你大概率会看到这样一行代码 这行代码就用到了命名空间的知识&#xff0c;…

QT 系统学习 day06 ,摄像头,语音识别(语音转文字,文字转语音,Qt 的人脸识别系统),

1.调用摄像头&#xff0c;拍照&#xff0c;存储照片 1.摄像头文件 /******* 摄像头相关类 *****/ #include <QCamera> /*** 摄像头类 ***/ #include <QCameraInfo> /*** 系统摄像头属性类 ***/ #include <QCameraImageCapture> /*** 用于记录摄像头数据的类…

C语言入门(一)——程序的基本概念

程序的基本概念 程序和编程语言 自然语言和形式语言 程序的调试 第一个程序 程序的基本概念 程序和编程语言 1.程序 程序&#xff08;Program&#xff09;告诉计算机应如何完成一个计算任务&#xff0c;这里的计算可以是数学运算&#xff0c;比如解方 程&#xff0c;也可…

Centos7下安装PostgreSQL14及其基本命令使用

MySQL关系型数据库目前算是互联网公司使用最多的。前两天看到一个推文&#xff0c;相对比国内使用MySQL&#xff0c;PostgreSQL在国内的普及貌似不高&#xff1f;国外像网络电话公司Skype公司等在大量使用PostgreSQL 作为互联网从业者&#xff0c;保持学习是必须的。开始学习Po…

小甲鱼C语言【课后笔记第一章——打印(printf)

目录 1、“打印”就是“输出”的意思 2、使用 GCC 编译程序&#xff1a;gcc 源代码 -o 可执行文件。 3、printf 是格式化输出函数 a、函数概要 b、函数原型 c、参数分析 d、返回值 e、演示 4. 转义字符 5. 反斜杠的奥义 6、课后习题&#xff08;编程题&#xff09; 1、…

性能工具之JMeter模拟多IP地址访问

文章目录一、前言二、前置条件三、操作步骤一、前言 今天一同事在压测时提到怎么用 JMeter 里虚拟多个 IP 来发送请求&#xff0c;我想了一下以前用LR时用过虚拟ip地址&#xff0c;JMeter 还没有使用过。想着原理应该是相通的&#xff0c;既然 LR 都能支持的话&#xff0c;那 …

多线程学习笔记(四)-- 常见类及使用

1. thread的方法 Thread.sleep()&#xff1a;占用cpu资源 Thread.yeild()&#xff1a;当前线程让渡cpu资源&#xff0c;大家竞争&#xff0c;也有再抢到cpu的机会 t1.join()&#xff1a;在t2线程中&#xff0c;调用t1.join()&#xff0c;是等待t1执行完成 2. 线程状态 3. sy…

力扣(LeetCode)142. 环形链表 II(C++)

哈希表 最直观的思想&#xff0c;哈希表记录遍历的结点&#xff0c;如果结点重复出现&#xff0c;则有环。如果遍历到空结点&#xff0c;无环。 class Solution { public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode *> ad;auto tail head;while(…

java计算机毕业设计ssm医患交流平台93xzr(附源码、数据库)

java计算机毕业设计ssm医患交流平台93xzr&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。…

用Excel自带图表插入带分类变量的箱形图(单坐标轴并列箱)

箱型图主要用来观察一个或多个类别下&#xff0c;数值型变量的分位数及离群值的特征和分布&#xff0c;以及在一定程度上观察到偏度和峰度的状态。网上有一些自己计算分位数来绘制箱型图的方法&#xff0c;但一方面是没有直接使用excel自带的箱型图好看和功能全面&#xff0c;二…

qq群聊机器人接入ChatGPT-简介和源码

qq群聊机器人接入ChatGPT 最近 ChatGPT 很火&#xff0c;也注册了账号玩了玩&#xff0c;确实灰常强大。但是也有的小伙伴可能没办法注册账号&#xff0c;我就想着把qq群机器人接入ChatGPT。 过程还是比较简单顺利的。下面简单介绍一下 直接跳过介绍&#xff0c;查项目代码 1…