今天的封面是苏州的山塘街,由本人拍摄于2021年4月20日。之所以选用这张图作为封面,是因为接到一位正在苏州疫情前线奋战的小伙伴的求助。他每天除了值班,还要去社区为居民做核酸采样,同时自己的学业上还有导师安排的学术任务。最近苏州疫情变得严重,从2月14号到现在,连续60天,他每天从早忙到晚,一度接近崩溃。当他静下心来学习生信时,却在使用 conda 安装 pyscenic 和 cellphonedb 软件的时候遇到不少问题,向我求助了,这个忙我必须帮啊。我也希望自己能为疫情重灾区的人民贡献自己的一份力量。
此时,除了苏州,还有2500W的上海同胞以及全国多地爆发疫情的同胞们,正处于水深火热之中。希望大家可以同心抗疫,我们的共同敌人是病毒,而不是防控工作做得不到位的某些个体,也不是限制大家自由的居委会,更不是阳性的邻居。
简介
使用 conda 安装软件,可能在网络、镜像、虚拟环境依赖上遇到各种问题。这里再简单演示一下在 Linux 环境如何使用 conda 安装软件,同时避免一些报错。
下载安装 conda
首先是要获取 conda 的安装包,一般来说,我们在 Linux 命令行安装 miniconda 就够了,不需要安装 anoconda。国内用户,可以到阿里云镜像网站下载安装包(由于最近清华源访问不稳定,因此不推荐),推荐 Miniconda3-latest-Linux-x86_64.sh
版本:https://developer.aliyun.com/mirror/anaconda
安装包的下载地址是:https://mirrors.aliyun.com/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
可以使用本地电脑浏览器下载,然后再上传到服务器。也可以直接在服务器上运行下面命令下载安装包:
wget -c https://mirrors.aliyun.com/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
如果下载速度太慢,可以考虑换成北京外国语大学的镜像:https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
安装包下载完成后,使用下面命令安装:
bash Miniconda3-latest-Linux-x86_64.sh
安装过程提示需要输入 yes or no 的地方均输入 yes,提示需要按 Enter(回车)均按回车键即可。
最后安装完成后,运行一下下面命令重新激活环境或者重新登录服务器:
source ~/.bashrc
到这里 conda 的安装基本就完成了,可以调用一下帮助文档进行验证:
$ conda --help
配置镜像
如果使用的服务器是在国内,则推荐添加国内可用的镜像源,如北外源、阿里云等(注:由于清华源访问不稳定,读者可以自己测试所用服务器是否可以正常访问清华源)。添加北外源的方法是:
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
运行上面代码后,用户家目录会生成一个文件 .condarc
,文件记录的内容是:
$ cat ~/.condarc
channels:
- https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
- defaults
show_channel_urls: true
注意:这里有一个大坑,默认会添加一个 defaults
channel,这是 conda 的官方源。由于部分网络访问 conda 官方源可能存在障碍,导致安装软件报错,可以将这一行删除。如果你不会使用 vim 命令,就用下面这句代码删除:
sed -i '/defaults/d' ~/.condarc
删除之后再查看:
$ cat ~/.condarc
channels:
- https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
show_channel_urls: true
如果服务器访问北外源速度较慢,也可以添加其他镜像源,如阿里源:
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/msys2
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/r
conda config --set show_channel_urls yes
或者官方源(前文,部分网络访问 conda 官方源可能存在障碍):
conda config --add channels r
conda config --add channels conda-forge
conda config --add channels bioconda
但是不能同时添加多个镜像源,而且同一个镜像源的 channel 也不是越多越好。如果有修改过镜像源,则需要清空掉环境中的缓存:
conda clean -i
有一些服务器网络环境可能无法通过 https 安装软件,要把 .condarc
中的 https 改成 http。
一个 default 报错的例子是:
新建小环境
一般来说,使用 conda 安装软件,都是需要安装在小环境里的。所以需要先新创建小环境,前文小伙伴需要安装 pyscenic
和 cellphonedb
。参考:https://pyscenic.readthedocs.io/en/latest/installation.html
因此新创建了一个小环境,命名为 pyscenic
。由于 pyscenic 依赖于 python 3.6 以上版本,因此就顺便安装了python3.7:
conda create -n pyscenic python=3.7
创建好了之后,进入小环境:
conda activate pyscenic
安装 pyscenic
先在小环境中安装依赖软件(前面有添加镜像了,这里就不用再 -c 指定channel了,除非用到的 channel 前面没有添加):
conda install -y numpy cytoolz
再用 pip 安装 pyscenic,pip 是 python 安装软件的方法,同样国内可以使用 -i
参数指定镜像,这里使用阿里源,速度会快很多。
pip install pyscenic -i https://mirrors.aliyun.com/pypi/simple/
安装好了之后,可以调用一下帮助文档:
$ pyscenic --help
安装 cellphonedb
安装 cellphonedb:https://github.com/Teichlab/cellphonedb,同样依赖于 python3.6以上的环境,这里我直接安装在上面的 pyscenic 中了。(初学者还是建议新建一个小环境安装)
conda activate pyscenic
pip install cellphonedb -i https://mirrors.aliyun.com/pypi/simple/
安装过程中还是比较顺利的,可能有些包版本兼容性不是很好,但是看到 Successfully
就不管那么多了:
安装好了之后可以调用一下帮助文档
$ cellphonedb --help
导出 yaml 文件
如果要将当前环境参数(如软件版本、镜像源等)分享给其他人,可以导出 yaml 文件:
conda env export >pyscenic.yaml
然后将 pyscenic.yaml
分享给别人,别人可以直接使用下面命令创建相同的环境:
conda env create -f pyscenic.yaml
实际上我在安装完 pyscenic 和 cellphonedb 的时候分别导出了 yaml 文件,有需要的请自行下载。
pyscenic.yaml
pyscenic_cellphonedb.yaml