如何使用 GSVA 中更新的 API 通过 ssGSEA 方法执行 GSVA?

问题描述 投票:0回答:1

我正在开发一个项目,涉及使用 R 中的 GSVA 包执行 GSVA。具体来说,我正在尝试使用单样本基因集富集分析 (ssGSEA) 方法。但是,我遇到了与 Bioconductor 版本 3.18 中引入的新 API 相关的持续错误。函数签名和用法已更改,我无法使代码适应新的要求。

目标是使用 ssGSEA 方法和更新的 GSVA 包对 Hallmark 基因集执行 GSVA。表达数据存储在 ExpressionSet 对象中,基因集以列表形式提供。

最初,我尝试使用旧的 API 风格,直接将方法特定的参数传递给 gsva 函数。

gsvaOutH_Hallmark <- gsva(
  expr = exprs(eset),
  gset.idx.list = h,
  method = "ssgsea",
  ssgsea.norm = TRUE,
  verbose = FALSE
)

我收到以下错误:

Error in gsva(expr = exprs(eset), gset.idx.list = h, method = "ssgsea", ...) : 
  Calling gsva(expr=., gset.idx.list=., method=., ...) is defunct; use a method-specific parameter object (see '?gsva').

按照文档,我尝试使用构造函数来创建特定于方法的参数对象。

ssgsea_params <- ssgseaParam(expr = exprs(eset), gset.idx.list = h, ssgsea.norm = TRUE) 
这导致了以下错误:

Error in ssgseaParam(expr = exprs(eset), gset.idx.list = h, ssgsea.norm = TRUE) : 
  unused arguments (gset.idx.list = h, ssgsea.norm = TRUE)

根据示例,我尝试使用最少的参数创建参数对象。

ssgsea_params <- ssgseaParam(geneSets = h) 
我收到另一个错误:

Error in h(simpleError(msg, call)) : 
  error in evaluating the argument 'object' in selecting a method for function 'gsvaAssayNames': argument "exprData" is missing, with no default

最后,我尝试使用不带附加参数的构造函数,并将参数对象传递给 gsva 函数。


param <- ssgseaParam()

gsvaOutH_Hallmark <- gsva(param, exprs = exprs(eset), gset.idx.list = h, ssgsea.norm = TRUE, verbose = FALSE)

这也导致错误提示使用不正确。

我正在寻求有关如何正确使用 GSVA 包和新 API 来执行 ssGSEA 的帮助。具体来说,我需要了解:

  1. 如何使用所需参数正确创建 ssgseaParam 对象。
  2. 将此参数对象传递给gsva函数进行分析的正确方法。

任何指导或示例将不胜感激!

r bioconductor
1个回答
0
投票

使用

ssgseaParam
中参数的正确名称。你用的是旧的。它们应该是
exprData
而不是
expr
geneSets
而不是
gset.idx.list
,等等

请参阅 GSVA 文档

© www.soinside.com 2019 - 2024. All rights reserved.