limma:单通道数据和RNA-seq数据差异性分析标准方法

2023-12-23 18:44

本文主要是介绍limma:单通道数据和RNA-seq数据差异性分析标准方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

单通道数据极为流行,三大公司:Affymetrix、Illumina和Agilent的微阵列(microarray)技术产生的很多都是单通道数据。现在的主力的高通量测序机所产生的也是单通道数据,所以只要是被voom标准化(包括了log转化)的RNA-seq数据都可以看作和microarray一样的数据[引用]。这是一个很重要很有用的概念,相信会帮到很多生物信息入门者:

RNA-seq data + voom标准化 = microarray data

分析单通道数据其实是最好理解的,和普通的线性回归或者方差分析几乎是一样的。与微阵列数据不同的是,单通道数据通常需要依赖对比,缺少内参,所以R中设计程序的适合没几个标准参数可以用。这一篇文章中,我们仅仅使用最简单的两组对比设计的示例来做最简单的差异性分析。

示例

示例中的样本一共有两组共8个,前4个为正常组织,后4个为肿瘤组织。我们假设我们的表达举证为counts,counts应该长这样:

我们需要对这个矩阵进行voom转化,voom就是把 counts 转化为 log2-cpm的过程。

Voom

我们把下列的代码保存,并起名字为voom:

# assume counts is your Expression matrix
#Once a matrix of read counts counts has been created, with rows for genes and columns for samples,
#it is convenient to create a DGEList object using the edgeR package:dge <- DGEList(counts=counts)#The next step is to remove rows that consistently have zero or very low counts. One can for
#example usekeep <- filterByExpr(dge, design)
dge <- dge[keep,,keep.lib.sizes=FALSE]# It is usual to apply scale normalization to RNA-seq read counts, and the TMM  normalization
#method in particular has been found to perform well in comparative studies. This can be applied
# to the DGEList object:
dge <- calcNormFactors(dge)# voom 任选一种:
# 普通:
v <- voom(dge, design, plot=TRUE)
# 直接使用counts数据进行voom
# It is also possible to give a matrix of counts directly to voom without TMM normalization, by
v <- voom(counts, design, plot=TRUE)
# 如果你觉得原始数据噪声很大,也可以
#If the data are very noisy, one can apply the same between-array normalization methods as would
#be used for microarrays, for example:
v <- voom(counts, design, plot=TRUE, normalize="quantile")

设置分组

接下来就是设计矩阵了,根据要不要"对比矩阵",我们得到type分配了分组(处理):

type <- c("normal","normal","normal","normal","tumor","tumor","tumor","tumor")

设计矩阵分两种情况讨论

第一种:不要设计矩阵

# Here the first coefficient estimates the mean log-expression for wild type mice and plays the role
# of an intercept. Group <- factor(type, levels=c("normal","tumor"))
design <- model.matrix(~Group)
colnames(design) <- c("normal","tumorvsnormal")
designsource("voom")fit <- lmFit(v, design)
fit <- eBayes(fit)
topTable(fit, coef="tumorvsnormal", adjust="BH")

 第二种:要设计矩阵


#第二种设计
#The second coefficient estimates the difference between mutant and wild type.
#Differentially expressed genes can be found bydesign <- model.matrix(~0+type)
colnames(design) <- c("normal","tumor")source("voom")fit <- lmFit(v, design)
cont.matrix <- makeContrasts(tumorvsnormal=tumor-normal, levels=design)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2)
topTable(fit2, adjust="BH")

结果

我们看一下结果:

我们来看结果

你会发现结果是一样的,以上是针对单通道数据和voom标化 RNA-seq数据而言的二组对比,也是最常用的差异性分析方法,分享给大家。 

引用

Law, C.W., Chen, Y., Shi, W., and Smyth, G.K. (2014). Voom: precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biology 15, R29

这篇关于limma:单通道数据和RNA-seq数据差异性分析标准方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529070

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施: