我正在用R分析一些基因表达数据。我想要与eBayes做差异基因表达分析(limma是BioConductor的一部分),但要做到这一点,我需要我的表达数据作为一个eset对象。问题是,我只有预处理数据和没有CEL文件,我可以直接转换为eset对象。我试着在网上搜索,但找不到解决办法。我唯一发现的就是这是可能的。
为什么eBayes:,它应该有健壮的结果,即使在某些组中只有两个或三个样本,而且我确实有3个组,大小在2到3个样本之间。
详细说明我所拥有和想做的事情:,我有表达式数据,已经作为对数,归一化的肥胖值。数据在表达式矩阵中。大约有2万行,每一行都是一个基因,而行名是官方的基因名。有22列,每列对应于一个癌症样本。我有不同类型的癌症亚型,我想比较一下亚型1样本和第2组的基因表达情况。下面是我的矩阵的两行5列的例子。
示例矩阵:
SAMP1 SAMP2 SAMP3 SAMP4 SAMP5
GENE1 123.764 122.476 23.4764 2.24343 123.3124
GENE2 224.233 455.111 124.122 112.155 800.4516问题:要用eBayes来评估差异基因表达,我需要eset对象从这个表达式数据中提取出来,我真的不知道如何执行这个步骤。:(
我非常感谢每一个能帮助我的信息!如果有人能为小样本的比较提出另一种可靠的方法,那也可能解决我的问题。
谢谢!
发布于 2016-01-28 08:46:24
使用ExpressionSet似乎与生物导体封装中也流行的SummarizedExperiment非常相似。据我所知,在包中使用其中一种或另一种没有什么特别之处--在我的经验中,它被认为是一个通用的数据容器,以便标准化整个生物导体包的数据集格式。
来自生物导体上的微缩体:
Affymetrix数据通常将使用affy包进行规范化。我们将在这里假设数据可以作为一个名为eset的ExpressionSet对象使用。这样的对象将有一个插槽,其中包含每个数组上每个基因的日志表达式值,可以使用exprs(eset)进行提取。
换句话说,ExpressionSet的数据没有什么特别之处。ExpressionSet只是一系列相关的实验数据串在一起,但是我似乎可以从常规对象创建一个新的对象:
library(limma)
# counts is the assay data I already have.
dim(counts)
# [1] 64102 8
# Creates a new ExpressionSet object (quite bare, only the assay data)
asdf <- ExpressionSet(assayData = counts)
# Returns the data you put in.
exprs(asdf)这在我的装置上有效。
您需要考虑的第二部分是差异表达式分析比较模型矩阵的设计。您将需要预定义的因素与您的样本(可能在phenoData参数到ExpressionSet,然后创建一个model.matrix使用R的特殊formula语法。它们看起来类似于:dependent ~ factor1 + factor2 + co:related。请注意,factor1是一个因素类别或维度,而不仅仅是一个级别。
一旦有了这个功能,就应该能够运行lmFit了。实际上,我以前很少使用limma,但它似乎与edgeR的方案类似。
发布于 2016-01-28 08:07:47
只是决定让它来帮助其他的可怜的草皮,谁有同样的事故。我自己解决了问题后,通过友好的链接提供的评论。
ExpressionSet()确实获取矩阵并将它们转换为eSet对象。只需确保数据是矩阵,而不是数据帧对象。
https://stackoverflow.com/questions/25581769
复制相似问题