一文掌握Conda/Mamba软件安装:虚拟环境、软件通道、加速solving、跨服务器迁移...

生物信息学习的正确姿势

NGS系列文章包括NGS基础、在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。

节选自 - 这个为生信学习打造的开源Bash教程真香!!!

2.4 Conda安装配置生物信息软件

2.4.1 Conda安装和配置

2.4.2 Conda基本使用

2.4.3 Conda的channel

2.4.4 创建不同的软件运行环境

2.4.5 移除某个conda环境

2.4.6 Conda配置R

2.4.7 Conda环境简化运行

2.4.8 Conda环境备份

2.4.9 Conda环境导出和导入

2.4.10 Conda软件安装 core dump error/Segment fault/段错误 怎么办

2.4.11 Conda为什么越来越慢?

2.4.12 Conda是如何工作的

2.4.13 Conda哪一步慢?

2.4.14 如何提速Conda solving environment

2.4.15 从了通道外还能怎么下载提速

2.4.16 使用conda-pack直接从已经安装好的地方拷贝一份 (同一操作系统)

2.4.17 直接上 mamba

Conda安装配置生物信息软件

Conda是一种通用包管理系统,旨在构建和管理任何语言的任何类型的软件。通常与Anaconda (集成了更多软件包,https://www.anaconda.com/products/individual)和Miniconda (只包含基本功能软件包, https://conda.io/miniconda.html)一起分发。

最初接触到Anaconda是用于Python包的安装。Anaconda囊括了100多个常用的Python包,一键式安装,解决Python包安装的痛苦。但后来发现,其还有更多的功能,尤其是其增加了bionconda (https://bioconda.github.io/index.html)通道后,生物信息分析的7925多个软件都可以一键安装了 (具体列表在:https://anaconda.org/bioconda/repo),免去了编译时间浪费和解决库文件安装的问题。另外其最有吸引力的是它的虚拟软件环境概念,可以简单的配置不同Python版本的环境、不同Python包的环境、不同R环境和R包的环境,对于生物信息软件繁杂的应用和频繁的更新提供了很大的便利。

eeef66853c83166a0ae82e987223f9d4.png

Conda安装和配置

在链接https://www.anaconda.com/products/individual下载AnacondaMiniconda对应版本的分发包之后,安装就是运行下面的命令,根据提示一步步操作,主要是修改安装路径 (如果是根用户,可以安装到/anaconda下,其它任意目录都可以,但路径短还是有好处的;普通用户安装到自己有权限的目录下,如~/miniconda2)。

# soft目录为conda安装的目录,可自己修改
soft=~/miniconda2
echo 'export PATH="'${soft}'/bin:$PATH"' >>~/.bash_profile
export PATH="${soft}/bin:$PATH"
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh -b -f -p ${soft}

安装完成之后,记得把安装路径下的bin文件夹加入到环境变量中 (上面命令中我们已经帮您加进去了)。

Conda基本使用

在Conda安装配置好之后,就可以使用了。

conda list # 列出安装的软件包
# conda所有软件名都是小写
conda search <package ambigious name> # 搜索需要安装的软件包,获取其完成名字

以搜索numpy为例:

conda search numpy  # * 表示对于版本的包已安装
Fetching package metadata ...............
numpy                        1.7.2           py27_blas_openblas_201  conda-forge     [blas_openblas]
                             1.7.2           py27_blas_openblas_202  conda-forge     [blas_openblas]
                             1.12.0                   py36_0  defaults
                             1.12.0             py36_nomkl_0  defaults        [nomkl]
                          *  1.12.1                   py27_0  defaults
                             1.12.1             py27_nomkl_0  defaults        [nomkl]
                             1.13.1                   py36_0  defaults
                             1.13.1             py36_nomkl_0  defaults        [nomkl]
numpy-indexed                0.3.2                    py27_0  conda-forge
                             1.0.47                   py35_0  conda-forge
                             1.0.47                   py36_0  conda-forge
numpy_groupies               0.9.6                    py27_0  conda-forge
                             0.9.6                    py35_0  conda-forge
                             0.9.6                    py36_0  conda-forge
numpy_sugar                  1.0.6                    py27_0  conda-forge
                             1.0.6                    py34_0  conda-forge
numpydoc                     0.6.0                    py27_0  conda-forge
                             0.6.0                    py34_0  conda-forge
xnumpy                       0.0.1                    py27_0  conda-forge

安装包

conda install <package name> # 安装软件包
# -y是同意安装,不写的话会弹出提示,需要再次确认
conda install numpy=1.7.2 -y # 安装特定版本的软件包
conda remove <package name> # 移除软件包

安装R

# 具体见下面
# 安装R,及80多个常用的数据分析包, 包括idplyr, shiny, ggplot2, tidyr, caret 和 nnet
conda install -c r r-base=4.0.2 r-essentials
# 安装单个包
# conda install -c https://conda.binstar.org/bokeh ggplot

更新包

# 更新基础conda,新版本conda使用起来更快
conda update -n base -c defaults conda

conda update r-base

获取帮助信息

conda -h # 查看conda可用的命令
conda install -h #查看install子命令的帮助

只是这些命令就可以省去不少安装的麻烦了,但是如果软件没搜索到呢?

Conda的channel

Conda默认的源访问速度有些慢,可以增加国内的源;另外还可以增加几个源,以便于安装更多的软件,尤其是bioconda安装生信类工具。conda-forge通道是Conda社区维护的包含很多不在默认通道里面的通用型软件。r通道是向后兼容性通道,尤其是使用R3.3.1版本时会用到,现在则不需要单独添加了。后加的通道优先级更高,因此一般用下面列出的顺序添加。清华镜像具体见https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ (有时清华镜像也不稳定,不稳定时直接用官方镜像,早上下载速度还是好的)。

conda config --add channels r # Optional # Lowest priority
conda config --add channels defaults
conda config --add channels conda-forge
conda config --add channels bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# Anocanda清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels  https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/cond-forge
# 清华通道, 最高优先级
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes

注意通道的顺序是会影响solving environment和软件包下载的速度的。

# 显示已有的通道
conda config --get channels

conda通道的配置文件一般在~/.condarc里面,内容如下。全局控制conda的安装在conda_path/.condarc,具体操作见https://conda.io/docs/user-guide/configuration/admin-multi-user-install.html。

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/cond-forge
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # Anocanda清华镜像
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - bioconda
  - conda-forge
  - r

创建不同的软件运行环境

这是Conda最有特色的地方,可以通过创建不同的环境,同时运行不同软件的多个版本。

新创建的软件环境的目录为anaconda_path/envs/enrironment_name,具体见下面的3个例子。

  • 创建一个环境transcriptome安装常用转录组分析软件

# 新建一个环境,命名为transcriptome
# 环境名字为 transcriptome
# 环境中安装 samtools multiqc rseqc
conda create -n transcriptome samtools multiqc rseqc

# 如果还想继续安装
conda install -n transcriptome fastqc salmon star stringtie sra-tools trimmomatic rmats rmats2sashimiplot

# 启动新环境
source activate transcriptome
salmon -h

# 默认安装到了anaconda_path下面的envs/transcriptome目录下(在屏幕输出也会有显示)
# 这个目录下存在bin文件夹,一般使用全路径就可以调用,如下
# anaconda_path/envs/transcriptome/bin/salmon -h # 但有时会因为依赖关系而失败

source deactivate transcriptome

不少软件不激活环境也可以使用全路径调用,比如anaconda_path/envs/transcriptome/bin/salmon就可以直接使用salmon程序,这样我们就可以根据前面的PATH介绍,把目录anaconda_path/envs/transcriptome/bin/放入环境变量,就可以直接调用这个环境中的大部分程序了。

新版的conda默认会使用conda activate transcriptome激活环境。

初次使用时会弹出一个提示,需要运行conda init

conda activate qiime2-2020.6

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

不过,个人更喜欢用source anaconda_path/bin/activate transcriptome激活环境,用起来更灵活一些。而且如果是根用户安装时,不建议把conda环境默认加到环境变量中,会引起不必要的系统冲突。可以给个用户自己使用是自己配置对应的环境变量。

激活环境后,会看到命令行提示前多了一个环境名字,比如下面激活qiime2-2020.6环境后的展示。

ct@ehbio:~# source /anaconda3/bin/activate qiime2-2020.6
(qiime2-2020.6) ct@ehbio:~# which python
/anaconda3/envs/qiime2-2020.6/bin/python
(qiime2-2020.6) ct@ehbio:~# source /anaconda3/bin/deactivate
DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.
ct@ehbio:~# which python
/usr/bin/python
  • 在环境phylo中安装ete3

起因是使用官方的推荐命令安装时出了问题,py3.5的包装到了py2.7环境下。解决办法,新建一个py2.7的环境,然后安装。

# 新建一个环境,命名为phylo,指定其内安装的python版本为2.7
conda create -n phylo python=2.7

# 在phylo环境中安装 ete3
# ete3存在于2个通道中,官方推荐使用自己的通道,但没有成功
# -n 指定安装环境  -c 指定下载通道
# conda install -n phylo -c etetoolkit ete3 ete3_external_apps

# bioconda通道里面也有ete3, 下面的安装未指定具体通道,
# 将在前面设定的几个通道里面按先后顺序查找安装
conda install -n phylo ete3 ete3_external_apps

# 默认安装到了anaconda_path下面的envs/phylo目录下(在屏幕输出也会有显示)
# 这个目录下存在bin文件夹,一般使用全路径就可以调用,如下
# anaconda_path/envs/phylo/bin/ete3 -h # 但有时会因为依赖关系而失败

# 所以激活本次安装环境是比较不容易出问题的使用方式
source activate phylo

# 在新环境里面执行命令操作
ete3 -h
# 其它操作

# 退出新环境
source deactivate phylo
  • 创建R环境 Reference1

# Create a new conda environment called r,并且在里面安装anaconda
conda create -n r anaconda

# Switch to r environment
source activate r

# 在新环境里面安装R Installs R
conda install -c r r

# Install R kernel for IPython notebook
conda install -c r r-irkernel

# Install ggplot
conda install -c https://conda.binstar.org/bokeh ggplot

# 最后退出新环境
source deactivate r

列出所有的环境

conda env list

# conda environments:
#
                         /anaconda2
                         /anaconda2/envs/lefse
                         /anaconda2/envs/metagenome_env
                         /anaconda2/envs/metawrap
                         /anaconda2/envs/prokka_env
                         /anaconda2/envs/py3
                         /anaconda2/envs/r-environment
                         /anaconda2/envs/reseq
                         /anaconda2/envs/sourmash_env
                         /anaconda3/envs/qiime2-2020.6

移除某个conda环境

如果环境不需要了,或出了错,则可以移除。比如需要移除phylo环境,执行conda remove -n phylo --all

Conda配置R

在添加了不同的源之后,有些源更新快,有些更新慢,经常会碰到版本不一的问题。而且软件版本的优先级,低于源的优先级。保险期间,先做下搜索,获得合适的版本号,然后再选择安装。

conda search r-essentials

r-essentials                 1.0                    r3.2.1_0  r
                             1.0                   r3.2.1_0a  r
                             1.1                    r3.2.1_0  r
                             1.1                    r3.2.2_0  r
                             1.1                   r3.2.1_0a  r
                             1.1                   r3.2.2_0a  r
                             1.1                    r3.2.2_1  r
                             1.1                   r3.2.2_1a  r
                             1.4                           0  r
                             1.4.1                  r3.3.1_0  r
                             1.4.2                         0  r
                             1.4.2                  r3.3.1_0  r
                             1.4.3                  r3.3.1_0  r
                             1.5.0                         0  r
                             1.5.1                         0  r
                             1.5.2                  r3.3.2_0  r
                             1.5.2                  r3.4.1_0  r
                             1.6.0                  r3.4.1_0  r
                             1.0                    r3.2.1_0  defaults
                             1.0                   r3.2.1_0a  defaults
                             1.1                    r3.2.1_0  defaults
                             1.1                    r3.2.2_0  defaults
                             1.1                   r3.2.1_0a  defaults
                             1.1                   r3.2.2_0a  defaults
                             1.1                    r3.2.2_1  defaults
                             1.1                   r3.2.2_1a  defaults
                             1.4                           0  defaults
                             1.4.1                  r3.3.1_0  defaults
                             1.4.2                         0  defaults
                             1.4.2                  r3.3.1_0  defaults
                             1.4.3                  r3.3.1_0  defaults
                             1.5.0                         0  defaults
                             1.5.1                         0  defaults
                             1.5.2                  r3.3.2_0  defaults
                             1.5.2                  r3.4.1_0  defaults
                             1.6.0                  r3.4.1_0  defaults
                             1.5.2                  r3.3.2_0  conda-forge
                             1.5.2                  r3.3.2_0  https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

从上面可以看到清华的源版本同步于conda-forge, 都比较老,还是指定r通道安装。

conda install -c r -n r r-essentials=1.6.0

R会安装于conda_path/envs/r/bin中,软链到位于环境变量的目录中即可正常使用。这就是环境变量的活学活用。

Conda环境简化运行

为了方便不同环境里面程序的运行,我写了一个shell脚本 (conda_env_run.sh),具体运行如下:

# -c: 表示实际需要运行的命令
# -e: 表示需要启动的软件环境,也就是上面conda create建立的环境
# -b:一般不需要指定,如果conda没在环境变量中需要给出conda的安装路径
conda_env_run.sh -c  'ete3 -h mod' -e phylo

conda_env_run.sh -c  'bwa mem -h' -e aligner -b "/usr/local/anaconda2/bin"

conda_env_run.sh内容如下

#!/bin/bash

#set -x

usage()
{
cat <<EOF
${txtcyn}

***CREATED BY Chen Tong (chentong_biology@163.com)***

Usage:

$0 options${txtrst}

${bldblu}Function${txtrst}:

This is designed to run conda program in given environment.
It will automatically activate the environment, run the program and
deactivate the environment.

Thress commands from conda, 'activate', 'conda', 'deactivate' must
be in PATH or you should spcify <-b> parameter.

${txtbld}OPTIONS${txtrst}:
    -c    Full command to be run ${bldred}[NECESSARY]${txtrst}
    -e    Environment name${bldred}[NECESSARY]${txtrst}
    -b    Conda path${bldred}[NECESSARY]${txtrst}
EOF
}

command_cmd=''
environment=''
conda_path=''

while getopts "hc:e:b:" OPTION
do
    case $OPTION in
        h)
            echo "Help mesage"
            usage
            exit 1
            ;;
        c)
            command_cmd=$OPTARG
            ;;
        e)
            environment=$OPTARG
            ;;
        b)
            conda_path=$OPTARG
            ;;
        ?)
            usage
            echo "Unknown parameters"
            exit 1
            ;;
    esac
done

if [ -z ${environment} ]; then
    echo 1>&2 "Please give command and environment."
    usage
    exit 1
fi

if ! [ -z ${conda_path} ]; then
    export PATH=${conda_path}:${PATH}
fi

source activate ${environment}
${command_cmd}
source deactivate ${environment}

Conda环境备份

有的时候会出现装一个新包,装着装着就把当前环境搞装崩了的情况,所以备份一个环境还是必要的,conda create -n python35copy --clone python35,把python35备份为python35copy

Conda环境导出和导入

做培训时需要给参加培训的老师提供配置环境的脚本,之前都是提供一个Bash文件全部运行下来就可以完成整个环境的配置,更简单的方式是可以导出环境,自己配置时再导入就好了。

# 假设我们有一个环境叫 ehbio,可以导出为一个yml文件
conda env export --file ehbio_env.yml --name ehbio

# 然后换一台电脑,就可以完全重现这个环境了
# 这么做的另一个优势是yml中明确列出了软件的版本,
# 使用 conda solving environment时速度会快很多
conda env create -f ehbio_env.yml

Conda软件安装 core dump error/Segment fault/段错误 怎么办

# 清空缓存
# https://github.com/conda/conda/issues/7815
conda clean -a

Conda为什么越来越慢?

Conda中包含的软件越来越多,而且软件的不同版本都保留了下来,软件的索引文件越来越大,安装一个新软件时搜索满足环境中所有软件依赖的软件的搜索空间也会越来越大,导致solving environment越来越慢。

Conda是如何工作的

  1. 从设定的通道 (channel)处下载通道中所有软件的索引信息 (repodata.json) (Collecting package metadata (repodata.json))

    "packages" : {
     "moto-1.3.7-py_0.tar.bz2" : {
       "build" : "py_0",
       "build_number" : 0,
       "depends" : [ "aws-xray-sdk !=0.96,>=0.93", "backports.tempfile", "boto >=2.36.0", "boto3 >=1.6.15", "botocore >=1.12.13", "cookies", "dicttoxml", "docker-py", "flask", "jinja2 >=2.7.3", "jsondiff 1.1.1.*", "mock", "pyaml", "python", "python-dateutil", "python-jose <3.0.0", "pytz", "requests >=2.5", "responses >=0.9.0", "six", "werkzeug", "xmltodict" ],
       "license" : "Apache-2.0",
       "md5" : "17b424658cd07e678b5feebdc932eb52",
       "name" : "moto",
       "sha256" : "5924666f8c1758472dc4c3d22b270b46cd1c4b66c50a9ba50d5c636d2237bdd1",
       "size" : 399973,
       "subdir" : "noarch",
       "timestamp" : 1552438392680,
       "version" : "1.3.7"
     }
    }
    ~~
  2. 解析repodata中的信息获取所有依赖的包的信息

  3. 采用SAT-solver算法决定需要下载包的哪个版本和它们的安装顺序

  4. 下载并安装包

Conda哪一步慢?

主要是第3步,确定待安装包的依赖包之间的兼容和已安装软件之间的兼容,获得需要下载的包和对应版本。

如何提速Conda

  • 采用最新版的conda (Conda4.7相比Conda4.6提速3.5倍, Conda 4.8应该不会比4.7慢)

  • 安装时指定版本减少搜索空间 conda install python=3.7.4

  • 安装R包时指定R的版本也会极大减小搜索空间 (R包因其数目众多,也是生物类软件依赖解析较慢的原因之一) conda install r-base=4.0.2 r-ggplot2=3.3.2

  • 采用mamba加速软件依赖解析 [mamba采用c++重写了部分解析过程,这个提速效果是很明显的] (安装好mamba后就可以用mamba替换conda进行安装了)

    conda install mamba -c conda-forge
    mamba install python=3.7.4
  • ,默认conda解析软件依赖时优先考虑允许的最高版本,设置通道优先级权限高于软件版本新旧后,conda会能更快的解决依赖关系,避免defaultsconda-forge通道的奇怪组合导致软件依赖解析迟迟不能将结束的问题: conda config --set channel_priority strict (这个命令只需要运行一次)。

  • 创建一个新环境 (conda env create -n env_name)再安装软件,这样就不用考虑与已有的软件的兼容问题了,也可以大大降低搜索空间和提高解析软件依赖的速度。

  • 如果安装的软件提供了environment.yaml那么用起来,文件中对应的软件版本都很明确,解析依赖关系时更快。也可以按前面提供的方式导出一个已经配置好的环境的yaml文件,在其它电脑配置时直接读取。(具体导出方式见Bioconda软件安装神器:多版本并存、环境复制、环境导出。

    channels:
     - qiime2/label/r2020.6
     - conda-forge
     - bioconda
     - defaults
    dependencies:
     - _libgcc_mutex=0.1
     - _openmp_mutex=4.5
     - _r-mutex=1.0.1
     - alsa-lib=1.1.5
     - arb-bio-tools=6.0.6
     - attrs=19.3.0
     - backcall=0.2.0
     - bibtexparser=1.1.0
     - binutils_impl_linux-64=2.34
     - binutils_linux-64=2.34
     - bioconductor-biobase=2.42.0
     - bioconductor-biocgenerics=0.28.0
     - bioconductor-biocparallel=1.16.6
     - bioconductor-biostrings=2.50.2
     - bioconductor-dada2=1.10.0
    ~
  • 添加Bioconda通道时,注意顺序,给予conda-forge最高优先级,其次是bioconda。如果之前已经添加好了通道,自己在~/.condarc中调整顺序。

    conda config --add channels defaults
    conda config --add channels bioconda
    conda config --add channels conda-forge
  • 综合以上组合,之前尝试多次都没安装好的工具,直接搞定。

下载提速

  1. 国内镜像,见软件安装不上,可能是网速慢!Conda/R/pip/brew等国内镜像大全拿走不谢~~

  2. 换个网或从朋友处拷贝已经下载好的压缩包一般在anaconda_root_dir/pkgs下,拷贝放在自己的anaconda3/pkgs下面,再次下载时系统会识别已经下载好的包而跳过 (并不总是有效)。

  3. 获取所有相关包的名字,从朋友处拷贝下载好的安装包。

    如果拷贝过来未能自动识别,可手动安装 conda install --offline local_path

mamba install r-base=4.0.2 r-ggplot2=3.3.2 --dry-run >package_solving_result


# _anaconda_depends  pkgs/main/linux-64::_anaconda_depends-2020.07-py37_0
# _r-mutex           conda-forge/noarch::_r-mutex-1.0.1-anacondar_1
# binutils_impl_lin~ pkgs/main/linux-64::binutils_impl_linux-64-2.33.1-he6710b0_7
# binutils_linux-64  conda-forge/linux-64::binutils_linux-64-2.33.1-h9595d00_17
# brotlipy           conda-forge/linux-64::brotlipy-0.7.0-py37h516909a_1000
# bwidget            conda-forge/linux-64::bwidget-1.9.14-0
# gcc_impl_linux-64  pkgs/main/linux-64::gcc_impl_linux-64-7.3.0-habb00fd_1
# gcc_linux-64       conda-forge/linux-64::gcc_linux-64-7.3.0-h553295d_17

# 获取所有包的名字
grep '::' a | sed 's/.*:://' | sed 's/$/.tar.bz2/'

# 手动安装
for i in `grep '::' a | sed 's/.*:://' | sed 's/$/.tar.bz2/'`; do conda install --offline /anaconda3/pkgs/$i; done

使用conda-pack直接从已经安装好的地方拷贝一份 (同一操作系统)

安装conda-pack

conda install -c conda-forge conda-pack
# pip install git+https://github.com/conda/conda-pack.git

打包已经安装好的环境

conda pack -n my_env_name -o my_env_name.tar.gz

拷贝打包好的环境my_env_name.tar.gz到目标机器,并解压到任何目录,一般推荐放到envs目录下 (anaconda_root/envs)。(注意:anaconda_root改为自己的conda安装路径。)

# 解压打包好的环境
# 默认是全都解压到当前目录,场面很壮观
# -C 一定要指定
mkdir -p anaconda_root/envs/my_env
tar -xzf my_env.tar.gz -C anaconda_root/envs/my_env

# 激活环境
source my_env/bin/activate

# Unpack
conda-unpack

# 至此环境就完全拷贝过来了
source deactivate

直接上 Mamba

现在新版的mamba支持开箱即用了,下载、初始化就可以使用。

# curl micro.mamba.pm/install.sh | bash
curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba

./bin/micromamba shell init -s bash -p /mambaforge/

source ~/.bashrc

# mamba操作
micromamba activate  # this activates the base environment
micromamba install python=3.10 jupyter -c conda-forge
# or
micromamba create -n env_name xtensor -c conda-forge
micromamba activate env_name

重用之前conda的环境

# 重用之前conda的环境
mkdir -p /mambaforge/envs/
ln -s /root/anaconda3/envs/* /mambaforge/envs/

# 如果还是习惯之前的使用mamba或conda的习惯,可以建个软链接,换药不换汤
mkdir /mambaforge/bin
mv ./bin/micromamba /mambaforge/bin
ln -s /mambaforge/bin/micromamba /mambaforge/bin/mamba
ln -s /mambaforge/bin/micromamba /mambaforge/bin/conda

往期精品(点击图片直达文字对应教程)

dad09a6ef6413dc675f743c1e2eefac4.jpeg

a9e7e88168aa810a54056c985e90df5b.jpeg

f384b9c5ce03bb77197f9a78b4462783.jpeg

b716d65d241bc6726fd8eeea321a529c.jpeg

c3e0f2fec70eba1334c2ccad7ad99298.jpeg

8719442b17a444a74590f5a35d6dc735.jpeg

c38c20c36ca8e3c9740020313de7191f.jpeg

96983156f5863ac4d45e1b24e3fe0bf6.jpeg

91b6413ea4d3e9a329c1a6988123ab4f.jpeg

896e8a5f0ae20f3c34d443ceb18242bb.jpeg

61acd1d51e66ece6750a7d896a7abf92.jpeg

d9a8dacb31b55ee004b670a6dd5f2fcd.jpeg

d2a808f96b23dfba041a2c97e1cc9278.png

a601806d92b93959e632ffa69e340c5b.png

1946a7bfd931b56b50c44f17c43ab2c3.png

72ffdb6b578f7355f3d7e9415352cf8f.png

feb3c8aac10ca97319eb773f9461872e.jpeg

5f81c1721595a2cc9496f0581f33a8bc.jpeg

0739696721f1f70ccdf125f19957b9a7.jpeg

0fcfe42930929a6f2be5a3f6f25e3e36.jpeg

a5131d0873644de063550188f1280d2b.png

95a20fc658fd0c57677ccfb85ee62695.png

c6e55b77568583b66a300f01d57b75d6.jpeg

0b5e6348f1c6f5e8377a90bf249a3d82.png

d47e5be8d0dd07735c504681bae7be9e.png

9c354551b363a1051a71c51c9e4fbe93.jpeg

8c18f686595cf7258592708709f2dd29.png

765caa841a4d0f4d56164def2d21c17d.png

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

0730a62a3f0124d8dfe3c2e1107f5666.jpeg

46a02b566ee7a1ff90837617409fe154.jpeg

8cb3d99fed566021dbca06a8001b5f1d.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/148406.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

APISpace 验证码短信API接口案例代码

1.验证码短信API产品介绍 APISpace 的 验证码短信API&#xff0c;支持三大运营商&#xff0c;虚拟运营商短信发送&#xff0c;电信级运维保障&#xff0c;独享专用通道&#xff0c;3秒可达&#xff0c;99.99&#xff05;到达率&#xff0c;支持大容量高并发。可批量发送多个号码…

关系选择器

关系选择器&#xff0c;说明元素和元素之间需要存在关系了。 后代选择器 定义&#xff1a;选择所有被E元素包含的F元素&#xff0c;中间用空格隔开 语法&#xff1a;E F{ } 选择E元素下面所有的F元素 <ul><li>宝马</li><li>奔驰</li> </u…

notpad++正则化,利用关键字符删除整行

首先&#xff0c;ctrlf,选中[替换]&#xff0c;勾选正则表达式&#xff08;可以勾选[匹配大小写]&#xff0c;不用勾选[匹配新行]&#xff09;。在[查找目标]框输入[^(.*)"car_no_clean"(.*)$\n]。在$后加上\n&#xff0c;可以将被替换的行直接删除&#xff0c;不加则…

go语言学习之旅之安装sdk环境,hello world!

学无止境 为什么学习Go语言 高效编程&#xff1a; Go语言被设计为一门高效的编程语言。其编译速度快&#xff0c;执行速度也相对较快&#xff0c;适合用于构建高性能的应用程序。 并发支持&#xff1a; Go语言天生支持并发编程&#xff0c;通过goroutine和channel提供了简单而…

FineReport图表设计图表类型设计流程

1.图表制作流程&#xff08;帮助文档目录&#xff1a;图表应用 > 图表简介 2.参数查询 在大多数情况下&#xff0c;我们并不需要报表把数据库中所有的数据都呈现出来&#xff0c;而是要根据一些条件来过滤出我们想要的数据&#xff0c;这就是参数查询。定义参数&#xff1a…

公益SRC实战|SQL注入漏洞攻略

目录 一、信息收集 二、实战演示 三、使用sqlmap进行验证 四、总结 一、信息收集 1.查找带有ID传参的网站&#xff08;可以查找sql注入漏洞&#xff09; inurl:asp idxx 2.查找网站后台&#xff08;多数有登陆框&#xff0c;可以查找弱口令&#xff0c;暴力破解等漏洞&…

自己写的一个BMP转PNG工具BMP2PNG

写这个工具是因为要使用传奇的部分素材在COCOS2DX使用&#xff0c; 但是COCOS2DX不支持BMP 如果直接将BMP转换到PNG的话&#xff0c;网上找到的工具都不支持透明色转换。难道要用PS一个一个抠图吗&#xff1f;要累死 所以写了这个工具。一些古老的游戏比如 千年 传奇 都是BMP…

探索SOLIDWORKS 3DE云平台:产品数据管理与协作的新时代

SOLIDWORKS 3DE云平台为企业提供了基于云端的全方位解决方案&#xff0c;涵盖了产品设计、仿真验证、制造与生产、市场与营销、数据管理和生命周期等领域。通过这一平台&#xff0c;企业能够将创意转化为现实所需的一切资源。同时&#xff0c;3DE云平台还帮助企业摆脱了IT限制&…

西门子博途软件安装问题汇总

Q1&#xff1a;操作系统需要使用基于美国联邦信息处理标准(FIPS)的加密算法。该软件使用的某些Microsoft标准算法不符合该标准 A1&#xff1a;典型的操作系统问题。 在 window中打开功能里输入regedit,回车打开注册器。然后进入如下路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon…

芯科科技推出新的8位MCU系列产品,扩展其强大的MCU平台

新的BB5系列为简单应用提供更多开发选择 中国&#xff0c;北京 - 2023年11月14日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;&#xff0c;今日宣布…

StatSVN统计svn项目中每人代码提交量

一.JDK配置 StatSVN是java语言开发的&#xff0c;要运行必须先安装jdk并配置环境变量。 1.jdk下载地址https://www.oracle.com/ 2.jdk环境变量配置&#xff0c;路径为jdk安装位置 二.下载StatSVN 1.下载地址 http://sourceforge.net/projects/statsvn/ 2.解压到本地目录&a…

第四代智能井盖传感器:井盖位移怎么办?

城市的每一个井盖虽然看似平凡&#xff0c;但其在城市运行中发挥着不可或缺的作用。随着科学技术的不断发展&#xff0c;智能井盖传感器的引入为城市管理带来了革命性的变化。在对于传统井盖出现位移等异常现象&#xff0c;智能井盖传感器可以提供更好的解决方法。 井盖位移怎么…

保护数据库防止数据泄露

为了避免金钱损失、声誉损害、机密性损失、不遵守政府法规等&#xff0c;保护组织的数据至关重要&#xff0c;保护数据库可以保护您的企业免受无数安全威胁&#xff0c;包括权限滥用、数据泄露、数据库注入和其他网络攻击。 选择工具保护数据库 Log360 是一站式 SIEM 解决方案…

python爬取网站数据,作为后端数据

一. 内容简介 python爬取网站数据&#xff0c;作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接&#xff1a; 三.主要流程 3.1 通过urllib请求网站 里面用的所有的包 ! pip install lxml ! pip install selenium ! pip install…

数据创新加速产业发展∣企企通亮相2023浙北CIO峰会,以技术驱动数智升级

近年来&#xff0c;政府工作报告多次提及数字化&#xff0c;要求“加快数字化发展&#xff0c;发展数字经济&#xff0c;推进数字产业化&#xff0c;推动数字经济和实体经济深度融合&#xff0c;打造具有国际竞争力的数字产业集群”。数据成为推动企业数字化转型发展、提质增效…

【带头学C++】----- 六、结构体 ---- 6.1 结构体概述

6.1 结构体概述&#xff08;struct&#xff09; 结构体&#xff08;struct&#xff09;是C中用于自定义数据类型的一种机制&#xff0c;它允许将多个不同类型的变量&#xff08;成员变量&#xff09;组合在一起形成一个新的数据类型。结构体允许程序员创建一个包含不同数据类型…

vue中通过.style.animationDuration属性,根据数据长度动态设定元素的纵向滚动时长的demo

根据数据长度动态设定元素的animation 先看看效果&#xff0c;是一个纯原生div标签加上css实现的表格纵向滚动动画&#xff1a; 目录 根据数据长度动态设定元素的animationHTMLjs逻辑1、判断是数据长度是否达到滚动要求2、根据数据长度设置滚动速度 Demo完整代码 HTML 1、确…

算法萌新闯力扣:最后一个单词的长度

力扣热题&#xff1a;最后一个单词的长度 开篇 健康是奋斗的本钱&#xff0c;今天生病后深有体会。看电脑都头晕&#xff0c;勉强来发道题吧。。 题目链接:58.最后一个单词的长度 题目描述 代码纯享版 class Solution {public int lengthOfLastWord(String s) {int sum 0…

python基于图卷积神经网络GCN模型开发构建文本数据分类模型(以论文引用领域数据未例)

GCN&#xff08;Graph Convolutional Network&#xff09;图卷积神经网络是一种用于处理图数据的深度学习模型。它是基于图结构的卷积操作进行信息传递和特征学习的。 GCN模型的核心思想是通过利用邻居节点的特征来更新中心节点的表示。它通过迭代地聚集邻居节点的信息&#x…

太可怕啦!我在网上发了个贴,就被GPT-4推断出了个人隐私!GPT-4化身福尔摩斯

最近 GPT-4 被人发现了具有“福尔摩斯”一样的能力&#xff01; 可以仅仅通过帖子内容来推测出用户的隐私&#xff01; 瑞士苏黎世联邦理工学院的研究人员发现大语言模型可以对用户发在Reddit 帖子进行深度分析&#xff0c;并成功“猜测”出用户的年龄、地点、性别和收入等个…