【问题标题】:Creating eset object from preprocessed expression matrix?从预处理的表达式矩阵创建 eset 对象?
【发布时间】:2014-10-24 06:17:10
【问题描述】:

我正在用 R 分析一些基因表达数据。我想用 limma 的 eBayes 进行差异基因表达分析(limma 是 BioConductor 的一部分),但要做到这一点,我需要将我的表达数据作为一个 eset 对象。问题是,我只有预处理数据,没有 CEL 文件,我可以直接转换为 eset 对象。我尝试从互联网上搜索,但找不到解决方案。我唯一发现的是,这是可能的。

为什么选择 eBayes: 即使在某些组中只有两个或三个样本,它也应该有可靠的结果,而且我确实有 3 个组,样本大小为 2 到 3 个。

详细说明我有什么和想做的: 我有表达数据,已经是对数的标准化强度值。数据在表达式矩阵中。大约有 20 000 行,每行是一个基因,行名是官方的基因名称。有 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 对象,老实说,我不知道如何进行该步骤。 :(

我非常感谢每一个可以帮助我的信息!如果有人可以提出另一种可靠的小样本比较方法,那也可以解决我的问题。

谢谢!

【问题讨论】:

  • ExpressionSet() 似乎有效!谢谢!我之前尝试过,但没有足够好的例子来弄清楚为什么它不喜欢我的数据。原来,它被存储为数据框......
  • 分析一般以lmFit开头,而不是eBayeslmFit取一个矩阵;来自?lmFit:“对象:'numeric'、'matrix'、'MAList'、'EList'、'marrayNorm'、'ExpressionSet' 或 'PLMset' 类的对象,其中包含表达式的对数比率或对数值系列微阵列”。此外,最好在 Bioconductor [邮件列表](bioconductor.org/help/mailing-list) 上提出有关 Bioconductor 问题的问题
  • 使用ExpressionSet 似乎与SummarizedExperiment 非常相似,后者在Bioconductor 包中也很普遍。

标签: r expression bioinformatics bayesian bioconductor


【解决方案1】:

使用ExpressionSet 似乎与SummarizedExperiment 非常相似,后者在Bioconductor 包中也很普遍。据我了解,在一个包中使用其中一个或另一个没有什么特别之处——根据我的经验,它被视为数据的通用容器,以便标准化 Bioconductor 包中的数据集格式。

来自 Bioconductor 的小插曲:

Affymetrix 数据通常会使用 关注 包裹。我们将在这里假设 数据可作为 表达式集 称为对象 埃塞特。这样的对象将有一个包含 每个阵列上每个基因的对数表达值,可以使用 表达式(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 然后使用 R 的特殊 formula 语法创建 model.matrix。它们看起来类似于:dependent ~ factor1 + factor2 + co:related。请注意,factor1 是一个因素类别或维度,而不仅仅是一个级别。

一旦你有了它,你应该能够运行lmFitlimma 之前其实没怎么用过,不过好像和edgeR 的方案差不多。

【讨论】:

  • 是的,它最终运行良好,就像您的示例一样。我的数据对象格式错误。感谢您的回复和明确的例子。 :)
【解决方案2】:

只是决定让它回答以帮助其他有同样事故的可怜的草皮。在浏览了 cmets 中提供的链接后,我自己解决了这个问题。

ExpressionSet() 确实采用矩阵并将它们转换为 eSet 对象。只需确保数据是矩阵而不是数据框对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多