我正在开发一个项目,涉及使用 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 的帮助。具体来说,我需要了解:
任何指导或示例将不胜感激!