为什么Seurat中的FindNeighbor给予“未找到'CsparseMatrix_validate'”错误?

3ks5zfa0  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(1335)

这是我想要运行的代码:

Aldh1l1.neg_Atp1b2.pos_new <- FindNeighbors(Aldh1l1.neg_Atp1b2.pos_new, dims = 1:10)

但由于以下错误,它无法正常工作:

Error in validityMethod(as(object, superClass)) : 
  object 'CsparseMatrix_validate' not found

我已经重新安装了几次SeuratMatrix包。我甚至重新安装了一次RStudio。
调用堆栈如下所示:

> traceback()
15: validityMethod(as(object, superClass))
14: isTRUE(x)
13: anyStrings(validityMethod(as(object, superClass)))
12: validObject(.Object)
11: .nextMethod(.Object = .Object, ... = ...)
10: callNextMethod()
9: initialize(value, ...)
8: initialize(value, ...)
7: new(Class = "Graph", i = c(0L, 62L, { ... TRUNCATED ... }
6: do.call(what = "new", args = object.list)
5: UpdateSlots(object = object)
4: `DefaultAssay<-.Graph`(object = `*tmp*`, value = assay)
3: `DefaultAssay<-`(object = `*tmp*`, value = assay)
2: FindNeighbors.Seurat(Aldh1l1.neg_Atp1b2.pos_new, dims = 1:10)
1: FindNeighbors(Aldh1l1.neg_Atp1b2.pos_new, dims = 1:10)
oaxa6hgo

oaxa6hgo1#

从2022年9月起,在R-devel邮件列表的this thread中讨论了潜在问题。
CsparseMatrix_validate是在Matrix1.5-3中定义的,用于替换虚拟类CsparseMatrix的现有有效性方法。问题是在Matrix1.5-3(或更新版本)下构建的某些包在其命名空间中缓存了有效性方法,但没有缓存CsparseMatrix_validate的定义。
调用cached方法时,必须在安装的任何版本的Matrix中找到CsparseMatrix_validate。如果该版本早于1.5-3,则找不到该符号,结果就是您看到的错误。
要为所有用户解决这个问题,问题包的维护者应该将Matrix (>= 1.5-3)放在他们包的DESCRIPTION文件中ImportsDepends下。
在此之前,个人用户只需安装Matrix1.5-3(或更新版本):

> install.packages("Matrix", repos = "https://cran.r-project.org/")
> packageVersion("Matrix")
[1] '1.5.3'

如果这不起作用,那么我们需要更多关于您的设置的详细信息(库路径等)。

相关问题