差异表达分析之FDR
差异表达分析之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的更多相关文章
- Differential expression analysis for paired RNA-seq data 成对RNA-seq数据的差异表达分析
Differential expression analysis for paired RNA-seq data 抽象背景:RNA-Seq技术通过产生序列读数并在不同生物条件下计数其频率来测量转录本丰 ...
- 转录组差异表达分析工具Ballgown
Ballgown是分析转录组差异表达的R包. 软件安装: 运行R, source(“http://bioconductor.org/biocLite.R”) biocLite(“ballgown”) ...
- 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差异表达分析: 扩展 ...
- 使用RSEM进行转录组测序的差异表达分析
仍然是两年前的笔记 1. prepare-reference 如果用RSEM对比对后的bam进行转录本定量,则在比对过程中要确保比对用到的索引是由rsem-prepare-reference产生的. ...
- 使用Tophat+cufflinks分析差异表达
使用Tophat+cufflinks分析差异表达 2017-06-15 19:09:43 522 0 0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...
- 生信基础知识【04】GO和pathway分析
非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...
- Sensitivity, specificity, and reproducibility of RNA-Seq differential expression calls RNA-Seq差异表达调用的灵敏度 特异性 重复性
Sensitivity, specificity, and reproducibility of RNA-Seq differential expression calls RNA-Seq差异表达调用 ...
- PacBio三代全长转录组/Iso-Seq技术及案例分析
参考:产品手册 PacBio三代全长转录组有什么优势? 近年来,随着高通量测序技术的发展,转录组测序已经成为研究基因表达调控的主要手段.但二代的转录本重构准确率很低,三代可以直接得到全长转录本,无需组 ...
- 史上最全 | 39个RNAseq分析工具与对比
文献:Sahraeian S M E, Mohiyuddin M, Sebra R, et al. Gaining comprehensive biological insight into the ...
随机推荐
- Hadoop集群(二) HDFS搭建
HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper ...
- Mac中安装tensorflow(转)
当我们开始学习编程的时候,第一件事往往是学习打印"Hello World".就好比编程入门有Hello World,机器学习入门有MNIST.MNIST是一个识别手写数字的程序 M ...
- SAP RFC函数
RFC 接口 RFC是对一个函数模块的调用,但是调用者的系统与被调函数所在的系统是不一样的. RFC也可以在系统内被调用,但是通常调用和被调用是在不同的系统中的. 在sap系统中,远程调用的能力是有R ...
- c 语言的复杂声明
简化的声明语法: dcl: optional *'s direct-dcl direct-dcl: name (dcl) direct-dcl() direct-dcl[optional size] ...
- 表的转置 行转列: DECODE(Oracle) 和 CASE WHEN 的异同点
异同点 都可以对表行转列: DECODE功能上和简单Case函数比较类似,不能像Case搜索函数一样,进行更复杂的判断 在Case函数中,可以使用BETWEEN, LIKE, IS NULL, IN, ...
- JDK8中JVM堆内存划分
一:JVM中内存 JVM中内存通常划分为两个部分,分别为堆内存与栈内存,栈内存主要用运行线程方法 存放本地暂时变量与线程中方法运行时候须要的引用对象地址. JVM全部的对象信息都 存放在堆内存中.相比 ...
- 如何使用eclipse创建JAVA项目并写一个简单的HelloWorld
输入项目名称 点击完成(Finish) 原文地址:https://blog.csdn.net/qq_36798713/article/details/79530056
- MVC001之mvcpager简单分页
描述:用mvcpager实现简单分页功能 参考网址: http://www.cnblogs.com/iamlilinfeng/archive/2013/03/11/2951460.html http: ...
- kali安装显卡驱动
由于我们使用cpu一般最多也就是4到16核,而一块不错的gpu可以多大上千核,在并行复杂运算能力上GPU的运算速度远远超过CPU的运算速度,所以很多场合比如暴力穷举破解,挖矿更多地使用GPU,所以有必 ...
- 如何搭建python+selenium2+eclipse的环境
搭建python和selenium2的环境(windows) 1.下载并安装python(我用的是2.7的版本) 可以去python官网下载安装:http://www.python.org/getit ...