当前位置: 首页>后端>正文

Debug log - R - RunHarmony()

起因

  • 运行以下RunHarmony()报错,可是代码以前能跑的,唯一的不同就是换了服务器
seuratObj <- RunHarmony(sce, "orig.ident")
  • 报错内容
Error in harmonyObj$cluster_cpp() : 
  element-wise pow(): incompatible matrix dimensions: 100x6 and 6x1

处理过程

方案一 ?:重装

  • 该问题比较新,根据Github解决方案 [1],首先运行以下代码重装harmony:
devtools::install_github("eddelbuettel/harmony",force = TRUE)
devtools::install_github("immunogenomics/harmony",force = TRUE)
  • 不行

方案二 ?:Live Support

  • 官方在上述issue中提出与官方联系 [2]
  • 我联系了,但是问题提交的时候一直处于Submitting…

方案三 ?:Rcpp版本问题

  • 从一开始的解决方案里,有人提出是Rcpp包的版本问题 [3]
  • 于是查看Rcpp包的版本 [4]
packageVersion('Rcpp')
[1] ‘1.0.9’
  • 嗯,有可能是版本问题……
  • 安装旧版本的Rcpp
    • 因为我查看自己电脑上的R版本是1.0.7,所以安装了一样的以防万一
devtools::install_version("Rcpp", version = "1.0.7", repos = "[http://cran.us.r-project.org](http://cran.us.r-project.org/)")
  • 再一次查看版本还是1.0.9
  • 推测可能是已经加载过devtools包的缘故
    • 因为在把所有R包全部卸载的情况下,首先安装devtools,然后查看Rcpp包版本显示1.0.9
  • 此时无法加载刚安装的Rcpp
Package ‘Rcpp’ version 1.0.9 cannot be unloaded ……
  • 清除环境加载的R包重启Rstudio或上边栏Session-Restart R,此时所有R包都会unload
    • 加载并查看版本
library("Rcpp")
packageVersion('Rcpp')
[1] ‘1.0.7’
  • 皆大欢喜!!!
  • 然后继续安装其他R包!
  • 此方法适用于没安装多少包的
  • 如果安装了,应该可以通过unload所有包,然后重新加载实现。有些依赖高版本的Rcpp的R包,可能需要重新下载
  • 继续运行RunHarmony()就没问题了

补充

查看R包版本方法

packageVersion('Seurat')
sessionInfo('Seurat')
  1. https://github.com/immunogenomics/harmony/issues/171 ?

  2. https://devharmony.support/I/-/dev.harmony.one/index.html ?

  3. https://github.com/immunogenomics/harmony/issues/171#issuecomment-1287192826 ?

  4. https://www.jianshu.com/p/4b040b29e2ac ?


https://www.xamrdz.com/backend/3dx1941329.html

相关文章: