function ‘as_cholmod_sparse‘ not provided by package ‘Matrix‘
在分析scATAC数据的pbmc <- RunSVD(pbmc)时报错,本质上是matrix包的版本太新,需要降级,并重装降级的seurat和signac,否则不匹配
remove.packages("Matrix")
remotes::install_version("Matrix", version = "1.6-1.1")
1. 重装Seurat
remove.packages('SeuratObject')
remove.packages('Seurat')
packageurl <- "https://cran.r-project.org/src/contrib/Archive/SeuratObject/SeuratObject_4.1.4.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
packageurl <- "https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
或者换成清华镜像
install.packages("https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz", repos = NULL, type = "source")
2. 以及要重装signac
install.packages("https://cran.r-project.org/src/contrib/Archive/Signac/Signac_1.9.0.tar.gz", repos = NULL, type = "source")
然后SeuratDisk可以用
remotes::install_github("mojaveazure/seurat-disk")
安装,conda安装时好像一直说有冲突,事先先安装了以下两个包,(不知道有没有影响
conda install conda-forge::r-sdmtools
conda install -c anaconda libcurl
推荐以下代码~
但是有些情况下 Matrix 要大于1.6-4的版本!!兴许上面跑RunSVD(pbmc)报错function ‘as_cholmod_sparse‘ not provided by package ‘Matrix‘的问题不是Matrix包引起的!!!
重新试了以下代码,所有过程都能跑通了!!!!!!!!!
remove.packages('Matrix')
remove.packages('irlba')
remove.packages('Seurat')
remove.packages('SeuratObject')
remove.packages('Signac')install.packages("https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/Archive//Matrix/Matrix_1.6-5.tar.gz", repos = NULL, type = "source")
install.packages("irlba",type="source", force=TRUE)
## 有人说这个安装顺序也重要~!!!(很无语install.packages('Seurat') ## 会自动安装上SeuratObject
install.packages('Signac')
最后的版本是:
Signac_1.14.0
Matrix_1.6-5
irlba_2.3.5.1
SeuratObject_5.1.0
Seurat_5.3.0
成功!