最近有粉丝提问,他在R里面安装了conda,但是不知道如何启动和配置那个conda,让我非常吃惊。
一般来说, 假如大家有一些R包安装非常困难,或者某个数据分析的流程基于了一系列R包,我们会使用conda来安装R语言及其配套的R包,比如:singlecelltk和singlecellsignalr,很简单的几句话代码,主要是安装适合自己用户的R语言环境及相关的R包:
代码语言:javascript复制conda create -n r r-essentials r-base zlib pandoc
conda activate r
conda install -c bioconda bioconductor-singlecelltk
conda install -c bioconda bioconductor-singlecellsignalr
which R
ls -lh $HOME/miniconda3/envs/r
这个时候,你无需理会你的服务器的R语言版本或者R包啦,因为你每次都会 conda activate r 激活你自己的R语言环境哦。我们在这个环境里面安装了 bioconductor的 singlecelltk和singlecellsignalr,因为它们本身就会依赖大量的其它R语言包,所以理论上这个时候你的这个 conda activate r 小环境,已经是比较好的可以用来做单细胞转录组数据分析的啦!
两个工具的主页分别是:
- https://bioconductor.org/packages/3.14/bioc/vignettes/SingleCellSignalR/inst/doc/UsersGuide.html
- https://bioconductor.org/packages/3.14/bioc/html/singleCellTK.html
但是提问的粉丝的意思是,他其实本来是不想使用conda这个东西,奈何有一些R包,它依赖很多操作系统的外部环境,所以这个R包就自己给他的电脑安装了一个conda,所以他就不知道如何调用这个conda了。我看了看他的报错如下所示:
代码语言:javascript复制CondaError: KeyboardInterrupt
Exception ignored in: <module 'threading' from '/Users/test/Library/r-miniconda/lib/python3.9/threading.py'>
Traceback (most recent call last):
File "/Users/test/Library/r-miniconda/lib/python3.9/threading.py", line 1415, in _shutdown
atexit_call()
File "/Users/test/Library/r-miniconda/lib/python3.9/concurrent/futures/thread.py", line 31, in _python_exit
t.join()
File "/Users/test/Library/r-miniconda/lib/python3.9/threading.py", line 1033, in join
self._wait_for_tstate_lock()
File "/Users/test/Library/r-miniconda/lib/python3.9/threading.py", line 1049, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
这个其实是conda常见的问题,很容易通过修改镜像的方式解决掉,但前提是你知道自己的conda在哪,而提问的粉丝他的conda其实并不是他自己的安装的, 是R语言帮助他安装的,所以他陷入了一个套娃。其实报错信息里面提示了他的conda的全路径,所以进入终端后,使用下面的代码即可:
代码语言:javascript复制/Users/test/Library/r-miniconda/bin/conda --help
conda='/Users/jmzeng/Library/r-miniconda/bin/conda'
$conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
$conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
$conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
$conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$conda config --set show_channel_urls yes
# $conda update --all # 非必须
/Users/test/Library/r-miniconda/bin/pip install umap-learn
# Downloading numpy-1.21.5-cp39-cp39-macosx_10_9_x86_64.whl (17.0 MB)
网络这个问题啊,有时候确实很闹心。我以为是conda设置好镜像就可以了,结果使用它里面的Python的配套的pip下载,仍然是需要设置镜像,否则速度仍然是很可怜:
可怜的网络
所以正确的代码应该是:
代码语言:javascript复制/Users/test/Library/r-miniconda/bin/pip instal -i https://pypi.tuna.tsinghua.edu.cn/simple l umap-learn
增加了 -i https://pypi.tuna.tsinghua.edu.cn/simple
这样的镜像设置。
再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理:
- 《生信分析人员如何系统入门R(2019更新版)》
- 《生信分析人员如何系统入门Linux(2019更新版)》