Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用limma进行两组间的差异分析

使用limma进行两组间的差异分析

作者头像
生信修炼手册
发布于 2020-05-08 08:46:51
发布于 2020-05-08 08:46:51
6.9K015
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:15
代码可运行

欢迎关注”生信修炼手册”!

limma这个R包可以用于分析芯片数据,也可以分析NGS测序的数据,其核心是通过线性模型去估算不同分组中基因表达量的均值和方差,从而进行差异分析。

limma也是基于raw count的定量方式,但是它并不提供归一化的算法。在官方手册中,推荐采用edgeR的TMM归一化算法。完整代码如下

1. 读取文件

读取基因在所有样本中的表达量文件,示例如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gene_id ctrl-1 ctrl-2 ctrl-3 case-1 case-2 case-3
geneA 14  0  11  4  0  12
geneB 125 401 442 175 59 200

每一行为一个基因,每一列代表一个样本。读取数据的代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 读取表达量的表格
counts <- read.table(
 "gene.counts.tsv",
 header=T,
 sep="\t",
 row.names=1,
 comment.char="",
 check.names=F)# 设置样本分组
group <- factor(rep(c("control", "case"), each = 3))
design <- model.matrix(~group)# 构建edgeR中的对象
library(edgeR)
y <- DGEList(counts=count)

之所以采用edgeR来读取数据,是为了方便后续的预处理和归一化。

2. 过滤count数很低的基因

和edgeR中的预处理过程类似,根据CPM表达量对基因进行过滤,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keep <- rowSums(cpm(y)>1) >= 2
y <- y[keep, , keep.lib.sizes=FALSE]
3. 归一化

默认采用TMM归一化算法,计算每个样本的 sizefactor, 代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
y <- calcNormFactors(y)
4. 表达量转换

在进行差异分析前,需要对表达量进行转换,有以下两种选择

  1. logCPM
  2. voom

第一种转换就是计算logCPM值,第二种转换适用于样本间sizaFactors差异较大的情况。转换的代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# logCPM
logCPM <- cpm(dge, log=TRUE, prior.count=3)
# voom
v <- voom(dge, design, plot=TRUE)
5. 差异分析

转换之后的表达量就可以进行差异分析了,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fit <- lmFit(logCPM, design)
fit <- eBayes(fit, trend=TRUE)
res<- topTable(fit, coef=ncol(design))

上述代码采用的是logCPM值,当然也可以采用voom转换后的值,当采用voom转换时,注意trend参数为FALSE。

这里只是介绍了最简单的用法,更多复杂案例,比如多个分组,时间序列的差异分析等,请参考官方文档。

·end·

—如果喜欢,快分享给你的朋友们吧—

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RNA-seq入门实战(五):差异分析——DESeq2 edgeR limma的使用与比较
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
生信技能树
2022/07/26
17.2K0
RNA-seq入门实战(五):差异分析——DESeq2 edgeR limma的使用与比较
limma做RNAseq差异分析
limma是一个很强大的用于分析芯片的R包,也可以用于RNA-Seq的差异分析 以两个组比较为例:首先输入count表达矩阵,这里也跟其他差异分析R包一样,不要输入已经标准化的数据。 本文主要参考:https://www.bioinfo-scrounger.com/archives/115/
生信编程日常
2020/04/01
3.7K0
limma做RNAseq差异分析
使用edgeR进行两组间的差异分析
edgeR 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下
生信修炼手册
2020/05/08
1.7K0
比较不同流程(limma/voom,edgeR,DESeq2 )差异分析的区别
距离第一次听说生信已经十几年了,现在是邋遢大叔重新开始学代码,精力确实已不像从前,各位入坑还是要乘早。后来约莫在5年前,课题组当时有个RNA-Seq数据,lab meeting时听瑞典小哥在汇报DEGs筛选,当时感觉好是神奇。其实陆陆续续也有过学习的念头,但在对自己的各种纵容下,想法又逐渐隐没。直到2月前,机缘巧合参加了生信技能树培训,才进一步强化了自己学习生信技术的信念。
生信技能树
2021/01/05
5.1K0
GEO数据挖掘之转录组测序数据流程-以GSE150392为例
这个包里可以画pca, 热图,火山图,韦恩图,具体每个图的算法,可以看生信技能树GEO芯片分析
生信技能树
2022/06/08
2.5K1
GEO数据挖掘之转录组测序数据流程-以GSE150392为例
转录组差异分析—基本流程
读取RawCounts.csv文件,其文件形式如下图行名为ensembleid,列名为样本名称。
sheldor没耳朵
2024/07/29
2310
转录组差异分析—基本流程
生物信息数据分析教程视频——13-3种R包(DESeq2、edgeR和limma)进行RNAseq的差异表达分析与比较
视频地址:http://mpvideo.qpic.cn/0bc3zeaakaaalqalwhjtmzrvbsodaxeqabia.f10002.mp4? 参考文章: 超详细的DESeq2和edg
DoubleHelix
2022/12/15
1.3K0
生物信息数据分析教程视频——13-3种R包(DESeq2、edgeR和limma)进行RNAseq的差异表达分析与比较
一网打尽转录组差异分析!!!
差异分析在转录组数据分析中占据着举足轻重的地位,是揭示基因表达变化的关键步骤。然而,面对众多如DESeq2、limma和edgeR等转录组分析R包,分析人员常常面临选择困境。本文旨在深入探讨这些常用差异分析R包的特点、优劣,以及它们与t检验/Wilcox秩和检验(Wilcox-rank-sum test)在差异分析结果上的异同点。
生信学习者
2024/06/11
4500
一网打尽转录组差异分析!!!
带有疾病进展的多分组差异结果如何展示?
此次给绘制的图来自文献《Triple DMARD treatment in early rheumatoid arthritis modulates synovial T cell activation and plasmablast/plasma cell differentiation pathways》,是2017发表的,使用了他们团队自己2016发表的转录组测序数据,所以其实是有两个转录组测序数据集。
生信技能树
2025/01/02
1330
带有疾病进展的多分组差异结果如何展示?
转录组差异分析方法整理(deseq2,edgeR,limma_voom)
三种最常用的差异分析方法(deseq2,edgeR,limma_voom)的整理。
凑齐六个字吧
2024/08/04
1930
转录组差异分析方法整理(deseq2,edgeR,limma_voom)
转录组差异分析FPKM与count处理差别大吗
这些天来,我们一般都是处理上游定量好的count数据,然后进行下游的转录组分析。但是,我们查看GEO数据集时,会发现有些数据集并没有提供count数据,而仅仅提供了FPKM或者RPKM等格式的数据。那当数据集提供的是FPKM数据集时,我们还能处理吗。前面曾老师分享的推文中描述了FPKM的处理方式,具体见RNAseq数据,下载GEO中的FPKM文件后该怎么下游分析,评论区中有小伙伴谈到limma包的作者不推荐用limma处理FPKM数据,最好用原始数据进行分析。那用count与用FPKM去处理获得的差异基因具有巨大的差别吗?曾老师前两天提出了这个疑问,于是便有了今天的推文。接下来,我们就探索一下用count与用FPKM去处理获得的差异基因是否具有巨大差别吧?
生信菜鸟团
2023/01/05
12K1
转录组差异分析FPKM与count处理差别大吗
miRNA分析流程学习(四)/miRNA芯片数据差异分析再学习以及异常火山图可能原因解释
miRNA芯片数据的差异分析与mRNA数据的差异分析是相类似的,同时在既往的推文里我们也已经做了高通量测序数据的差异分析,后续我们会比较一下两者代码的区别,并且尝试解释异常火山图的可能原因。
凑齐六个字吧
2024/10/30
1030
miRNA分析流程学习(四)/miRNA芯片数据差异分析再学习以及异常火山图可能原因解释
【流程】使用limma、Glimma和edgeR,RNA-seq数据分析易如反掌
简单且高效地分析RNA测序数据的能力是Bioconductor的核心优势。RNA-seq分析通常从基因水平的序列计数开始,涉及到数据预处理,探索性数据分析,差异表达检验以及通路分析,得到的结果可用于指导进一步实验和验证研究。在这篇工作流程文章中,我们通过分析来自小鼠乳腺的RNA测序数据,示范了如何使用流行的edgeR包载入、整理、过滤和归一化数据,然后用limma包的voom方法、线性模型和经验贝叶斯调节(empirical Bayes moderation)来评估差异表达并进行基因集检验。通过使用Glimma包,此流程得到了增进,实现了结果的互动探索,使用户得以查看单个样本与基因。这三个软件包提供的完整分析突出了研究人员可以使用Bioconductor轻松地从RNA测序实验的原始计数揭示生物学意义。
王诗翔呀
2020/07/06
2.7K0
【流程】使用limma、Glimma和edgeR,RNA-seq数据分析易如反掌
差异分析|DESeq2完成配对样本的差异分析
前段时间拿到一个RNA-seq测序数据(病人的癌和癌旁样本,共5对)及公司做的差异分析结果(1200+差异基因),公司告知用的是配对样本的DESeq分析。
生信补给站
2021/03/03
7.1K6
差异分析|DESeq2完成配对样本的差异分析
TCGA数据挖掘(四):表达差异分析(4)
在之前我们的文章:TCGA数据挖掘(三):表达差异分析中,我们利用的是TCGAbiolinks包中的TCGAanalyze_DEA函数进行差异表达分析,我们也提到可以选择基于limma或edgeR包进行分析,TCGA数据挖掘(三):表达差异分析这一讲中我们利用的是edgeR包,之后我们在文章:TCGA数据挖掘(四):表达差异分析(2)和TCGA数据挖掘(四):表达差异分析(3)中分别也介绍了其他方法的差异分析,包括edgeR和DESeq包,今天这一讲,我们就利用TCGAbiolinks包中的TCGAanalyze_DEA函数基于limma包进行差异分析。
DoubleHelix
2019/09/18
4.6K0
TCGA数据挖掘(四):表达差异分析(4)
差异分析及KEGG注释简介
原来的bulk-RNA差异分析一般需要比较处理组(例如有三个样本)和处理组(例如也有三个样本),这里对于单细胞来讲,每个细胞就是一个样本,于是有768个样本,但是还是不能直接进行差异分析,还是需要先分个组,看看哪些细胞离得更近,就划分为一组,最后对每个组进行比较
生信技能树jimmy
2020/03/30
1.6K0
三种转录组差异分析方法及区别你会了吗?
在做项目时,曾有小伙伴对我用edgeR进行差异分析筛选出的具体显著差异基因表示质疑,因为发表的文章清楚的说明某个基因是差异基因,但是我edgeR的分析结果并没有表明。在小伙伴的质疑下,我认真看了下文章,发现文章用的是DEseq2进行差异分析。值得注意的是该小伙伴关注的差异基因是一个离散比较大的基因,此处的离散较大可以理解为假定对照组为5,6,7;实验组则为14,13,3的情况。那为什么这个基因在edgeR分析下不是显著差异基因,然而在DEseq2的分析下是差异基因呢?这应该很大程度源于算法判定显著差异基因的区别。接着,我看了关于DEseq2与edgeR区别的描述,发现「edgeR与Deseq2都是基于负二项分布模型做的,两者处理同一组数据时,相同阈值处理大部分基因是一样的,但是也会有一部分基因会因为离散度不同导致差异不同」,如刚刚示例的基因离散度被DEseq2识别为差异,但是不被edgeR识别,所以两种算法获取的差异基因与数目是存在细微区别的。
生信菜鸟团
2022/10/31
5.8K1
三种转录组差异分析方法及区别你会了吗?
比较微生物组中的差异分析方法
在微生物组研究中我们常常需要根据某些感兴趣的表型来找到与其相关的特征(比如菌群、OTU、基因家族等等)。但微生物组学的数据结构导致了这必然是一项相当艰巨的任务,因为他们:
生信菜鸟团
2021/12/13
7.1K0
比较微生物组中的差异分析方法
RNA-seq入门实战(八):GSVA——基因集变异分析
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
生信技能树
2022/07/26
9.5K0
RNA-seq入门实战(八):GSVA——基因集变异分析
转录组差异分析这样做能行吗?
前段时间,我们分享了转录组三种常见差异分析的推文以及单样本1V1进行差异分析的推文。对单个样本进行差异分析时,我们能获得相应的差异基因。在转录组三种常见差异分析的推文中,我们利用取交集的方式看了下三种方法获得共同差异基因的交集情况。曾老师提出了一个有趣的猜想,试想如果我们将3V3的样本拆分成3次1V1进行差异分析,是否会出现什么有趣的现象呢。为了让结果可比,我们就用上次的数据集GSE190114吧。此次,我们除了关注3次1V1差异分析上调与下调差异基因分别共同的交集情况之外,还将关注3种常见分析方法的上调与下调差异基因分别与拆分成3次1V1差异分析的上调与下调差异基因的共同交集情况,「用于探究是否能够拆分成3次1V1后进行差异分析」。话不多说,由于此次所使用的数据与上次一样,对此次的探究描述与数据集介绍感兴趣的小伙伴,请移驾至三种转录组差异分析方法及区别你会了吗?。
生信菜鸟团
2022/10/31
6670
推荐阅读
相关推荐
RNA-seq入门实战(五):差异分析——DESeq2 edgeR limma的使用与比较
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验