差异表达分析之FDR

随着测序成本的不断降低,转录组测序分析已逐渐成为一种很常用的分析手段。但对于转录组分析当中的一些概念,很多人还不是很清楚。今天,小编就来谈谈在转录组分析中,经常会遇到的一个概念FDR,那什么是FDR?为什么要用FDR呢?一起来学习吧!

什么是FDR

FDR (false discovery rate),中文一般译作错误发现率。在转录组分析中,主要用在差异表达基因的分析中,控制最终分析结果中,假阳性结果的比例。

为什么要用FDR

在转录组分析中,如何确定某个转录本在不同的样品中表达量是否有差异是分析的核心内容之一。一般来说,我们认为,不同样品中,表达量差异在两倍以上的转录本,是具有表达差异的转录本。为了判断两个样品之间的表达量差异究竟是由于各种误差导致的还是本质差异,我们需要根据所有基因在这两个样本中的表达量数据进行假设检验。常用的假设检验方法有t-检验、卡方检验等。很多刚接触转录组分析的人可能会有这样一个疑问,一个转录本是不是差异表达,做完假设检验看P-value不就可以了么?为什么会有FDR这样一个新的概念出现?这是因为转录组分析并不是针对一个或几个转录本进行分析,转录组分析的是一个样品中所转录表达的所有转录本。所以,一个样品当中有多少转录本,就需要对多少转录本进行假设检验。这会导致一个很严重的问题,在单次假设检验中较低的假阳性比例会累积到一个非常惊人的程度。举个不太严谨的例子。

假设现在有这样一个项目:

● 包含两个样品,共得到10000条转录本的表达量数据,

● 其中有100条转录本的表达量在两个样品中是有差异的。

● 针对单个基因的差异表达分析有1%的假阳性。

由于存在1%假阳性的结果,在我们分析完这10000个基因后,我们会得到100个假阳性导致的错误结果,加上100条真实存在的结果,共计200个结果。在这个例子中,一次分析得到的200个差异表达基因中,有50%都是假阳性导致的错误结果,这显然是不可接受的。为了解决这个问题,FDR这个概念被引入,以控制最终得到的分析结果中假阳性的比例。

如何计算FDR

FDR的计算是根据假设检验的P-value进行校正而得到的。一般来说,FDR的计算采用Benjamini-Hochberg方法(简称BH法),计算方法如下:

1. 将所有P-value升序排列.P-value记为P,P-value的序号记为i,P-value的总数记为m

2. FDR(i)=P(i)*m/i

3. 根据i的取值从大到小,依次执行FDR(i)=min{FDR(i),FDR(i+1)}

注:实际上,BH法的原始算法是找到一个最大的i,满足P≤i/m*FDR阈值,此时,所有小于i的数据就都可以认为是显著的。在实践中,为了能够在比较方便的用不同的FDR阈值对数据进行分析,采用了步骤3里的方法。这个方法可以保证,不论FDR阈值选择多少,都可以直接根据FDR的数值来直接找到所有显著的数据。

下面我们以一个包含10个数据的例子来看一下FDR计算的过程

在这个例子中,第一列是原始的P-value,第二列是排序后的序号,第三列是根据P-value校正得到的初始FDR,第四列是最终用于筛选数据的FDR数值。如果我们设定FDR<0.05,那么绿色高亮的两个数据就是最终分析认为显著的数据。

FDR的阈值选择在转录组分析中是非常重要的一个环节,常用的阈值包括0.01、0.05、0.1等。实践中也可以根据实际的需要来灵活选择。例如,在做真菌或者原核生物的转录组分析时,由于这些物种转录本数量较少,假阳性累积的程度较低,所以可以适当将FDR阈值设置的较高一些,这样可以获得较多的差异表达结果,有利于后续的分析。

 
 
 
 

差异表达分析之FDR的更多相关文章

  1. Differential expression analysis for paired RNA-seq data 成对RNA-seq数据的差异表达分析

    Differential expression analysis for paired RNA-seq data 抽象背景:RNA-Seq技术通过产生序列读数并在不同生物条件下计数其频率来测量转录本丰 ...

  2. 转录组差异表达分析工具Ballgown

    Ballgown是分析转录组差异表达的R包. 软件安装: 运行R, source(“http://bioconductor.org/biocLite.R”) biocLite(“ballgown”) ...

  3. RNA-Seq differential expression analysis: An extended review and a software tool RNA-Seq差异表达分析: 扩展评论和软件工具

    RNA-Seq differential expression analysis: An extended review and a software tool   RNA-Seq差异表达分析: 扩展 ...

  4. 使用RSEM进行转录组测序的差异表达分析

    仍然是两年前的笔记 1. prepare-reference 如果用RSEM对比对后的bam进行转录本定量,则在比对过程中要确保比对用到的索引是由rsem-prepare-reference产生的. ...

  5. 使用Tophat+cufflinks分析差异表达

    使用Tophat+cufflinks分析差异表达  2017-06-15 19:09:43     522     0     0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...

  6. 生信基础知识【04】GO和pathway分析

    非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...

  7. Sensitivity, specificity, and reproducibility of RNA-Seq differential expression calls RNA-Seq差异表达调用的灵敏度 特异性 重复性

    Sensitivity, specificity, and reproducibility of RNA-Seq differential expression calls RNA-Seq差异表达调用 ...

  8. PacBio三代全长转录组/Iso-Seq技术及案例分析

    参考:产品手册 PacBio三代全长转录组有什么优势? 近年来,随着高通量测序技术的发展,转录组测序已经成为研究基因表达调控的主要手段.但二代的转录本重构准确率很低,三代可以直接得到全长转录本,无需组 ...

  9. 史上最全 | 39个RNAseq分析工具与对比

    文献:Sahraeian S M E, Mohiyuddin M, Sebra R, et al. Gaining comprehensive biological insight into the ...

随机推荐

  1. 2、CDH 搭建Hadoop在安装(安装Cloudera Manager,CDH和托管服务)

    安装Cloudera Manager,CDH和托管服务 建议使用此过程为生产环境安装Cloudera Manager和CDH.对于非生产“易于安装”,请参阅安装概念证明群集. 在开始安装之前,请确保已 ...

  2. Centos新增group和user

    新增group groupadd hadoop 新增用户 useradd -d /usr/hadoop -g hadoop -m hadoop 设置密码 passwd hadoop

  3. javascript学习笔记(一):基础、输出、注释、引用、变量、数据类型

    javascript脚本必须位于<script></script>之间,<script>标签可以位于<head>中,也可以位于<body>中 ...

  4. day28 网络协议OSI 及socket模块

    反射都是操作对象中的__dict__的内容 class Student: def study(self): print("正在学习....") stu = Student() if ...

  5. html自定义弹框

    一.要实现的功能 1.弹框弹出时有遮罩 2.弹框内的文字过多时右侧有滚动条 3.根据执行结果变更弹框title的样式   二.具体实现 思路:定义一个有宽高的div,默认隐藏,当要显示时,设置为dis ...

  6. Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)

    在日常开发过程中难免会因为一时疏忽而留下一些Bug,这些Bug就是埋在程序里的定时炸弹,如果不能及时铲除就会导致程序的不稳定,异常或闪退的现象,从而导致用户的体验的下降.那么怎么才能找出这些埋在程序里 ...

  7. 2017最新整理移动Web开发遇到的坑

    随着前端的热度不断升温,行业对前端的要求越来越高:精准无误的实现UI设计,已成为前端职业更加精细化的一种表现:随着移动互联网的发展.WebApp似乎一种不可逾越的鸿沟:越来越多的企业开始趋势于轻量级的 ...

  8. 九 configparser模块

    配置文件如下: # 注释1 ; 注释2 [section1] k1 = v1 k2:v2 user=egon age=18 is_admin=true salary=31 [section2] k1 ...

  9. windows下python文件与文件夹操作

    一.导入模块 imoprt os 二.获取python当前执行的目录 s=os.getcwd() 三.创建文件 import datetime import os dtime=datetime.dat ...

  10. 微信小程序接入百度统计

    一. 百度统计添加应用,获取appkey和微信小程序统计sdk: 1. 百度统计首页,点击“我的全部应用”右侧的添加按钮: 2. “应用类型”选择小程序统计,选择微信小程序,填写应用名称信息,选择内容 ...