由于跑单细胞的时候更新了seurat v5,导致我遇到了蛮多问题的,其中这个问题就是我在细胞注释时采用SingleR包遇到的问题。
>singleR.hpca <- SingleR(test = test, ref = hpca.se, labels = hpca.se$label.main)
Error: [matrixStats (>= 1.2.0)] useNames = NA is defunct. Instead, specify either useNames = TRUE or useNames = FALSE. See also ?matrixStats::matrixStats.options
从报错中可见他说的是:当前使用的 matrixStats
包(版本>1.2.01)中的 useNames = NA
已经被废弃。然后当时网上冲浪也找到了一些方法:
第一种:既然我已经更新到超过1.2.0版本的matrixStats
包了,我就索性手动覆盖掉 matrixStats
中的默认设置,将 useNames
参数显式设定为 TRUE
或 FALSE
matrixStats::matrixStats.options(useNames = TRUE)#也可以选择useNames = FALSE
##而后运行原来报错的代码
singleR.hpca <- SingleR(test = test, ref = hpca.se, labels = hpca.se$label.main)
实际上就是没什么用,然后我就觉得是不是SingleR
包内部调用 matrixStats
出现问题,更新一下检查看看,于是更新完发现还是没用(此时我的R版本4.2.1).
packageVersion("SingleR")##查看包的版本
##此时发现没更新过
remotes::install_github("dviraran/SingleR")#从 GitHub 安装最新版本
第二种:既然他说我的matrixStats
包(版本>1.2.0)中的 useNames = NA
已经被废弃,那我就手动将matrixStats
包滚到<1.2.0的版本,先看看matrixStats都有些什么版本:
Releases · cran/matrixStats (github.com)
然后我们选择1.1.0版本:
devtools::install_version("matrixStats", version = "1.1.0")#回到旧版本1.1.0
BiocManager::valid()#检查包依赖,确保所有依赖包都已经兼容
然后此时在运行原来的代码就会发现报错已经解决了。希望我的经验对大家有帮助,有不对的地方欢迎指正。