edgeR之配对检验分析差异基因的使用教程

edgeR的介绍

背景

RNA-seq表达谱与生物复制的差异表达分析。 实现一系列基于负二项分布的统计方法,包括经验贝叶斯估计,精确检验,广义线性模型和准似然检验。 与RNA-seq一样,它可用于产生计数的其他类型基因组数据的差异信号分析,包括ChIP-seq,Bisulfite-seq,SAGE和CAGE。

简介

edgeR包是进行RNA-seq数据分析非常常用的一个R包。该包需要输入每个基因关于每个样本的reads数的数据,每行对应一个基因,每一列对应一个样本。edgeR作用的是真实的比对统计,因此不建议用预测的转录本。

归一化原因:

技术原因影响差异表达分析:

1)Sequencing depth:统计测序深度(即代表的是library size);

2)RNA composition:个别异常高表达基因导致其它基因采样不足

3)GC content: sample-speci?c e?ects for GC-content can be detected

4)sample-speci?c e?ects for gene length have been detected

注意:edgeR必须是原始表达量,而不能是rpkm等矫正过的

1.读取表达矩阵文件

>SFTSV_24vscontrol_circ<-read.table("edgeR_TPM_SFTSV_24vscontrol_circ.txt",header= T,stringsAsFactors = F)[,1:8] #读取基因表达量数据矩阵,包含6列样本(可分为C1和D1两组,每组各3个样本)共计1031行基因。

2.构建分组变量

分为control组和SFTSV_24组,每组都为三个重复

>group<-c(rep("control",3),rep("SFTSV_24",3))

3.构建DGElist对象

这里因为已经有rawdata的count文件,因此直接用DGEList()函数就行了,否则要用readDGE()函数

DGEList对象主要有三部分:

1、counts矩阵:包含的是整数counts;

2、samples数据框:包含的是文库(sample)信息。一共有4列,第一列为每个组的组名,第二列为group列,是上面构建的分组变量,第三列是lib.size列,如果不自定义lib.size,lib.size为每组记录的count之和,第四列为norm.factors列。

3、一个可选的数据框genes:gene的注释信息

###由于这里记录的是circRNA的back-spliced junction reads,这里的数据是取所有样本的circRNA的交集,所以这里的lib.size需要重新设定,设置为最开始的每个样本中所有circRNA的count之和###     

>y<-DGEList(count=SFTSV_24vscontrol_circ[,3:8],group=group,genes=SFTSV_24vscontrol_circ[,1:2],lib.size = c(48843,35329,48667,31309,35582,40933)) #这里重新设置了lib.size

4.过滤和标准化

过滤:因为这里记录的是circRNA的count数,已经在分析的过程中过滤过,所以这里不进行数据的过滤。

如果是mRNA或者lncRNA的count数,需要对其的表达量进行过滤。对于在大多数样本中表达数量都很少的基因,需要进行过滤,这一步可以根据自己定义的标准过滤,edgeR推荐使用该包的CPM( count-per-million )值进行过滤,命令:

>keep <- rowSums(cpm(y)>1) >= 2#至少在两个样本里cpm大于1
>y <- y[keep, , keep.lib.sizes=FALSE]

标准化:edgeR的标准化思想主要针对的是不同样本在建库时效应。这一点与RPKM不同,因为edgeR认为不同的基因对于所有样本的影响是相同的,所以不必考虑。因此为了消除这种建库时的效应,edgeR会更推荐你使用他的calcNormFactors函数,算出来的值叫做trimmed mean of M-values (TMM) ,命令为:

>y <- calcNormFactors(y)
>y$samples>plotMDS(y) #这里主要是通过图形的方式来展示实验组与对照组样本是否分得开,以及同一组内样本是否能聚的比较近,即重复样本是否具有一致性

5.估计离散度

> y <- estimateCommonDisp(y, verbose=TRUE)
> y  <-estimateTagwiseDisp(y)
> plotBCV(y)

6.通过检验差异来鉴别差异表达基因

>et <- exactTest(y)

>top <- topTags(et) #这里可以设置topTags函数的参数,输入?topTags可以查看topTags的详细用法,可以设置参数n来调整显示的条目,默认是n=10,可以通过设置sort.by="logFC"来按照|logFC|的降序排序,设置p.value=0.05来筛选p-adjusted value<0.05的基因

7.筛选差异基因与基本统计

>summary(de <- decideTestsDGE(et,adjust.method = "BH", p.value = 0.05,lfc=1)) #默认的参数是adjust.method="BH",也可以设置为adjust.method="fdr",BH和fdr是等价的,p.value=0.05也是默认的参数,指的是筛选FDR小于0.05的基因,这里也可以设置lfc参数,默认的lfc为lfc=0,也可以根据自己需要设置,更多的函数参数可以输入?decideTestsDGE查看

                                                                                           

原文地址:https://www.cnblogs.com/yanjiamin/p/12059480.html

时间: 2024-08-01 17:57:44

edgeR之配对检验分析差异基因的使用教程的相关文章

10、差异基因topGO富集

参考:http://www.biotrainee.com/thread-558-1-1.html http://bioconductor.org/packages/3.7/bioc/ http://www.bioconductor.org/packages/release/bioc/html/topGO.html topGO使用: 首先,我们制作准备文件,CC.BP.MF三个注释文件,格式为:基因ID\t GO:xxx,GO:yyy(topGO.map) 然后准备我们的差异基因列表,两列差异基因

miRNA分析--靶基因预测(三)

miRNA分析--数据过滤(一) miRNA分析--比对(二) 根据miRNA Target Prediction in Plants, miRNA并非所有区域都要求严格匹配,其中第1位碱基和第14位以后的碱基是允许错配(以miRNA 5'为始). miRNA 文件提交不管是U或者T都是可以的 miRNA 靶基因预测我采用了3个工具 1.psRNATarget: A plant Samll RNA Target Analysis Server 进去以后,提交自己miRNA文件,fasta格式,并

PHP性能分析工具XHProf安装使用教程

HProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile.基于浏览 器的性能分析用户界面能更容易查看,或是与同行们分享成果.也能绘制调用关系图.在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序. 它独有的数据计算的报告/后处理阶段.在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开

iOS 10越狱和Reveal 7分析三方App UI框架教程

前言 这是一篇写给开发者的博客,如果碰巧非开发者搜到了这篇博客,那么博客的内容可能不适合你. 其实网上Reveal的教程很多,但是很多都是停留在Reveal 1或者Reveal 2时代的博客,不太适合最新版本的Reveal 7,所以还是决定写这样一篇文章. 本文最终的效果: 淘宝首页: 可以看到,淘宝首页其实就是一个巨大的CollectionView 京东首页: 可以看到,京东首页其实就是一个巨大的TableView 越狱 准备工作: 一台待越狱的设备(10.3系统以下),最好用测试机或者淘汰下

asyncio创建协程解析——分析廖雪峰的Python教程之创建WEB服务(转)

第一步,搭建开发环境 所需第三方库: aiohttp,异步 Web 开发框架:jinja2,前端模板引擎:aiomysql,异步 mysql 数据库驱动 所需内置库: logging,系统日志:asyncio,异步IO:os,系统接口:json,json 编码解码模块:time,系统时间模块:datetime,日期模块 接下来仅对用到的功能进行讲解 第二步,构建 Web 框架 主要思路: 理解 asyncio.aiohttp 基本应用 使用 asyncio 异步 IO 模块创建服务协程,监听相应

cuffdiff 和 edgeR 对差异表达基因的描述

ASE又走到了关键的一步  要生成能决定是否有差异表达的table. 准备借鉴一下cuffdiff和edgeR 的结果 cuffdiff对差异表达基因的描述:

无生物学重复RNA-seq分析 CORNAS: coverage-dependent RNA-Seq analysis of gene expression data without biological replicates

无生物学重复RNA-seq分析 CORNAS: coverage-dependent RNA-Seq analysis of gene expression data without biological replicates BMC Bioinformatics 的一篇文章中提出了一种新的差异基因分析方法. 这篇文章提出了CORNAS(COverage-dependent RNA-Seq) 方法,利用贝叶斯方法来推断真实基因表达数的  后验分布. 其创新型之一该方法包括了由RNA样品浓度决定的

统计学常用概念:T检验、F检验、卡方检验、P值、自由度

1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一些随机变量的概率分布(probability distribution)进行比较,我们可以知道在多少%的机会下会得到目前的结果.倘若经比较后发现,出现这结果的机率很少,亦即是说,是在机会很 少.很罕有的情况下才出现:那我们便可以有信心的说,这不是巧合,是具有统计学上的意义的(用统计学的话讲,就是能够

T检验与F检验的区别_f检验和t检验的关系

1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一些随机变量的概率分布(probability distribution)进行比较,我们可以知道在多少%的机会下会得到目前的结果.倘若经比较后发现,出现这结果的机率很少,亦即是说,是在机会很少.很罕有的情况下才出现:那我们便可以有信心的说,这不是巧合,是具有统计学上的意义的(用统计学的话讲,就是能够拒