Why Does Findneighbor from Seurat Give "'Csparsematrix_Validate' Not Found" Error?

This is the code that I want to run:

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

But it doesn't work due to this error:

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

I have already reinstalled the Seurat and Matrix packages several times. I have even reinstalled RStudio once.

The call stack looks like this:

> 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)
0

1 Answer

The underlying issues are discussed in this thread on the R-devel mailing list, from September 2022.

CsparseMatrix_validate was defined in Matrix 1.5-3 to replace the existing validity method for virtual class CsparseMatrix. The problem is that some packages built under Matrix 1.5-3 (or newer) cache the validity method in their namespace, but not the definition of CsparseMatrix_validate.

When the cached method is called, CsparseMatrix_validate must be found in whatever version of Matrix that you have installed. If that version is older than 1.5-3, then the symbol is not found, and the result is the error that you see.

To solve it for all users, the maintainer of the culprit package should put Matrix (>= 1.5-3) in their package's DESCRIPTION file under Imports or Depends.

Until that happens, it should suffice for individual users to install Matrix 1.5-3 (or newer):

> install.packages("Matrix", repos = "")
> packageVersion("Matrix")
[1] '1.5.3'

If that doesn't work, then we'll need more details about your setup (library paths, etc.).

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Chloe Bennett

Chloe Bennett

Culture, Media & Entertainment Columnist

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.

Share this article
Twitter Facebook Pinterest