cellassign的安装需要依赖于tensorflow(一个python机器学习经典库),可以根据以下步骤进行安装:先安装R包tensorflow然后通过R包tensorflow安装安装python模块tensorflow,最后安装cellassign,如:
install.packages("tensorflow")
library(tensorflow)
install_tensorflow()
可是,在执行install_tensorflow()的时候,报错,找不到相关的Python环境,如下:
Error: could not find a Python environment for /usr/bin/python3
解决办法是创建一个python的conda虚拟环境r-tensorflow,如下:
conda create -y -n r-tensorflow python=3
随后通过keras包将R使用的python环境改为使用conda虚拟环境r-tensorflow, 如下:
install.packages("keras")
library(keras)
keras::use_condaenv("r-tensorflow", required = TRUE)
将tensorflow安装到conda虚拟环境r-tensorflow中,重新执行以下代码即可完成安装:
library(tensorflow)
install_tensorflow()
## 等待下载安装,中间出现了两次报错,这个python库比较大,可能是网速的原因,在第三次安装的时候成功安装
通过github安装cellassign,我通过BiocManager::install('cellassign')报错,可能时我的Bioconductor版本太新了。
library(devtools)
install_github("Irrationone/cellassign")
## install_github("Irrationone/cellassign")跑完后已经显示安装成功,DONE(cellassign)
## 通过BiocManager::install('cellassign')会出现报错,版本不对:package ‘cellassign’ is not available for Bioconductor version '3.13'
以上操作安装过程我是在终端中完成,安装完成后,当我回到Rstudio-server进行使用时发现加载包过程中发生报错,提示仍然没有安装上, 如下:
library(tensorflow)
library(cellassign)
# 错误: package or namespace load failed for ‘cellassign’:
# loadNamespace()里算'cellassign'时.onLoad失败了,详细内容:
# 调用: fun(libname, pkgname)
# 错误: Tensorflow installation not detected. Please run 'tensorflow::install_tensorflow()' to continue...
因此,我在想是否命令行中R安装的python模块在Rstudio-server中识别不到,所以就想按照在命令行中的方式在Rstudio-server中再安装一遍:
library(tensorflow)
install_tensorflow()
## Error: could not find a Python environment for /usr/bin/python3 ## 这个报错跟上述一样,可借助conda环境解决。
library(keras)
keras::use_condaenv("r-tensorflow", required = TRUE)
## Error: Unable to find conda binary. Is Anaconda installed?
后面这个报错就有点匪夷所思了,为什么找不到我新建的conda环境r-tensorflow呢?
经过多番操作,最后想到可能时Rstudio不能识别我的conda环境r-tensorflow在哪里,需要给它一个绝对路径(这个在终端中安装的时候是不需要的,终端能自动找到要使用的conda环境。)
在补充路径后,果然能成功解决这个问题:
keras::use_condaenv("~/biosoft/miniconda3/envs/r-tensorflow", required = TRUE)
library(tensorflow)
library(cellassign)
# 2021-08-18 09:04:50.711063: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
或许在以后每次使用该包之前,都需要指定一下R使用的python环境,即:
keras::use_condaenv("~/biosoft/miniconda3/envs/r-tensorflow", required = TRUE)
本文仅是本人安装R包过程中的一些笔记,希望能帮到有需要的人。
参考:cellassign:用于肿瘤微环境分析的单细胞注释工具(9月Nature)_悟道西方-CSDN博客
Python in R - Error: could not find a Python environment for /usr/bin/python - Stack Overflow