今天的封面是苏州的山塘街,由本人拍摄于2021年4月20日。之所以选用这张图作为封面,是因为接到一位正在苏州疫情前线奋战的小伙伴的求助。他每天除了值班,还要去社区为居民做核酸采样,同时自己的学业上还有导师安排的学术任务。最近苏州疫情变得严重,从2月14号到现在,连续60天,他每天从早忙到晚,一度接近崩溃。当他静下心来学习生信时,却在使用 conda 安装 pyscenic 和 cellphonedb 软件的时候遇到不少问题,向我求助了,这个忙我必须帮啊。我也希望自己能为疫情重灾区的人民贡献自己的一份力量。

此时,除了苏州,还有2500W的上海同胞以及全国多地爆发疫情的同胞们,正处于水深火热之中。希望大家可以同心抗疫,我们的共同敌人是病毒,而不是防控工作做得不到位的某些个体,也不是限制大家自由的居委会,更不是阳性的邻居。

1649951584346.png

简介

使用 conda 安装软件,可能在网络、镜像、虚拟环境依赖上遇到各种问题。这里再简单演示一下在 Linux 环境如何使用 conda 安装软件,同时避免一些报错。

下载安装 conda

首先是要获取 conda 的安装包,一般来说,我们在 Linux 命令行安装 miniconda 就够了,不需要安装 anoconda。国内用户,可以到阿里云镜像网站下载安装包(由于最近清华源访问不稳定,因此不推荐),推荐 Miniconda3-latest-Linux-x86_64.sh 版本:https://developer.aliyun.com/mirror/anaconda

1649954494387.png1649954543621.png1649954653584.png

安装包的下载地址是:https://mirrors.aliyun.com/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

可以使用本地电脑浏览器下载,然后再上传到服务器。也可以直接在服务器上运行下面命令下载安装包:

  1. 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

安装包下载完成后,使用下面命令安装:

  1. bash Miniconda3-latest-Linux-x86_64.sh

安装过程提示需要输入 yes or no 的地方均输入 yes,提示需要按 Enter(回车)均按回车键即可。

最后安装完成后,运行一下下面命令重新激活环境或者重新登录服务器:

  1. source ~/.bashrc

到这里 conda 的安装基本就完成了,可以调用一下帮助文档进行验证:

  1. $ conda --help

1649957326327.png

配置镜像

如果使用的服务器是在国内,则推荐添加国内可用的镜像源,如北外源、阿里云等(注:由于清华源访问不稳定,读者可以自己测试所用服务器是否可以正常访问清华源)。添加北外源的方法是:

  1. conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
  2. conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
  3. conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
  4. conda config --set show_channel_urls yes

运行上面代码后,用户家目录会生成一个文件 .condarc ,文件记录的内容是:

  1. $ cat ~/.condarc
  2. channels:
  3. - https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
  4. - https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
  5. - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
  6. - defaults
  7. show_channel_urls: true

注意:这里有一个大坑,默认会添加一个 defaults channel,这是 conda 的官方源。由于部分网络访问 conda 官方源可能存在障碍,导致安装软件报错,可以将这一行删除。如果你不会使用 vim 命令,就用下面这句代码删除:

  1. sed -i '/defaults/d' ~/.condarc

删除之后再查看:

  1. $ cat ~/.condarc
  2. channels:
  3. - https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
  4. - https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
  5. - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
  6. show_channel_urls: true

如果服务器访问北外源速度较慢,也可以添加其他镜像源,如阿里源:

  1. conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/msys2
  2. conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
  3. conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
  4. conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/r
  5. conda config --set show_channel_urls yes

或者官方源(前文,部分网络访问 conda 官方源可能存在障碍):

  1. conda config --add channels r
  2. conda config --add channels conda-forge
  3. conda config --add channels bioconda

但是不能同时添加多个镜像源,而且同一个镜像源的 channel 也不是越多越好。如果有修改过镜像源,则需要清空掉环境中的缓存:

  1. conda clean -i

有一些服务器网络环境可能无法通过 https 安装软件,要把 .condarc 中的 https 改成 http。

一个 default 报错的例子是:

1649990066243.png

新建小环境

一般来说,使用 conda 安装软件,都是需要安装在小环境里的。所以需要先新创建小环境,前文小伙伴需要安装 pysceniccellphonedb 。参考:https://pyscenic.readthedocs.io/en/latest/installation.html

因此新创建了一个小环境,命名为 pyscenic 。由于 pyscenic 依赖于 python 3.6 以上版本,因此就顺便安装了python3.7:

  1. conda create -n pyscenic python=3.7

创建好了之后,进入小环境:

  1. conda activate pyscenic

安装 pyscenic

先在小环境中安装依赖软件(前面有添加镜像了,这里就不用再 -c 指定channel了,除非用到的 channel 前面没有添加):

  1. conda install -y numpy cytoolz

再用 pip 安装 pyscenic,pip 是 python 安装软件的方法,同样国内可以使用 -i参数指定镜像,这里使用阿里源,速度会快很多。

  1. pip install pyscenic -i https://mirrors.aliyun.com/pypi/simple/

安装好了之后,可以调用一下帮助文档:

  1. $ pyscenic --help

1650008369857.png

安装 cellphonedb

安装 cellphonedb:https://github.com/Teichlab/cellphonedb,同样依赖于 python3.6以上的环境,这里我直接安装在上面的 pyscenic 中了。(初学者还是建议新建一个小环境安装)

  1. conda activate pyscenic
  2. pip install cellphonedb -i https://mirrors.aliyun.com/pypi/simple/

安装过程中还是比较顺利的,可能有些包版本兼容性不是很好,但是看到 Successfully 就不管那么多了:

1650008720444.png

安装好了之后可以调用一下帮助文档

  1. $ cellphonedb --help

1650008443915.png

导出 yaml 文件

如果要将当前环境参数(如软件版本、镜像源等)分享给其他人,可以导出 yaml 文件:

  1. conda env export >pyscenic.yaml

然后将 pyscenic.yaml 分享给别人,别人可以直接使用下面命令创建相同的环境:

  1. conda env create -f pyscenic.yaml

实际上我在安装完 pyscenic 和 cellphonedb 的时候分别导出了 yaml 文件,有需要的请自行下载。
pyscenic.yaml
pyscenic_cellphonedb.yaml