首页 > 解决方案 > WGCNA 为统计方法共享命名空间

问题描述

我正在使用WGCNA包中的一个函数,该函数具有一个参数 corType,它接受您要运行的特定相关性的字符串输入。两种主要的相关方法是“pearson”和“bicor”。当我运行该函数时,当函数开始处理 corType 参数时出现错误。如果我运行“pearson”,我会收到错误:

Error in (function(x, y - NULL, use = "everything", method = c("pearson", unused arguments (weights.x = NULL, weights.y = NULL,
cosine = FALSE)

如果我使用 corType 作为“bicor”运行该函数,我会收到错误消息:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
  object 'bicor' of mode 'function' was not found

我在 biostars 上进行了一些搜索,似乎WGCNA遇到了共享命名空间问题。一篇旧帖子建议我做以下两件事之一:

  1. 重新启动 R 并仅在运行该函数之前加载WGCNA包(这看起来很愚蠢,因为我可能一天运行该函数多次。)
  2. 将 cor 命名空间设置为WGCNA(via WGCNA::cor) 的命名空间,然后将其重置为默认stat包 (via stat::cor)。这似乎更好,但可能仍然很笨重。

下面我试图包含一个最小可重复的示例以及我的 R 会话信息。提到我正在构建一个包可能很重要,因此当我在另一个函数中运行 WGCNA 函数时,而不是使用require()每个包,我将它们添加到导入中DESCRIPTION并使用foo::bar. 我在自己的 R 环境中运行了以下代码并复制了错误。如果您需要任何进一步的信息,请告诉我。

cnames = c("GSM2886523", "GSM2886524", "GSM2886525", "GSM2886526", "GSM2886527")
test.expr.data <- matrix(c(0.1708434,-0.1129639,-0.09490149,-0.08757270,0.08918957, 
                           0.9866739,-1.0146009,-2.18310607,-1.92989284,-2.01153493, 
                           -0.1447803,0.2311808,-0.09179321,-0.16356002,-0.19043491, 
                           -0.2162092,0.2822163,0.06230056,-0.03903165,0.53407426, 
                           -0.2659731,0.1810084,0.02749196,-0.07015478,-0.07480163), 
                           nrow = 5, ncol = 5)
colnames(test.expr.data) <- cnames

wgcna_out = WGCNA::blockwiseModules(t(expr_data), power = 5, networkType = "signed", 
                                    corType = "pearson")
#Error in (function(x, y - NULL, use = "everything", method = c("pearson", unused arguments (weights.x = NULL, weights.y = NULL,
#cosine = FALSE)

wgcna_out = WGCNA::blockwiseModules(t(expr_data), power = 5, networkType = "signed", 
                                    corType = "bicor")
#Error in get(as.character(FUN), mode = "function", envir = envir) : 
#  object 'bicor' of mode 'function' was not found

我应该在每次运行此函数时设置然后重置 cor 命名空间,还是有更优雅的方法来解决此问题?

R 会话信息。

标签: rnamespaces

解决方案


我知道这个问题;目前我只是使用

cor=WGCNA::cor

在我运行 WGCNA 代码之前。

我将不得不检查 bicor 问题,这不应该发生。


推荐阅读