我正在使用WGCNA
包中的一个函数,该函数具有参数corType,该参数接受要运行的特定相关性的字符串输入。两种主要的相关方法是“皮尔森”和“ bicor”。当我运行函数时,当函数处理corType参数时出现错误。如果我运行“皮尔逊”,则会收到错误消息:
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
我在生物之星上进行了一些搜索,似乎WGCNA
遇到了共享名称空间问题。一条旧帖子建议我执行以下两项操作之一:
WGCNA
程序包(这似乎很愚蠢,因为我一天可能会多次运行该函数。)WGCNA
(通过WGCNA::cor
),然后将其重新设置为默认的stat
包(通过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命名空间,还是有一种更优雅的方法来解决此问题?
答案 0 :(得分:1)
我知道这个问题;目前,我只是使用
cor=WGCNA::cor
在运行WGCNA代码之前。
我将不得不检查bicor问题,这不应该发生。