跳转至

mamba

mamba是一个基于conda的快速包管理器,可以解决conda在处理大型环境时速度较慢的问题。与conda类似,mamba可以帮助用户创建、配置、管理和分享环境和软件包。mamba是一个开源软件,核心部分由C++编写。主要具有以下特点:

  • 速度快:相比于conda,mamba在安装和更新软件包时更快,尤其是在处理大型环境时表现更加出色;

  • 轻量级:mamba在安装和运行时的内存占用更小,因此可以更快地启动和运行;

  • 兼容conda:mamba兼容Conda的所有功能和包,因此可以无缝地切换到mamba,而不需要重新安装或更改现有的环境;

  • 高度可定制:mamba提供了一些高级功能,例如并行安装、交互式进度条、缓存下载的包等等,可以通过配置文件进行调整;

  • 多线程:mamba支持多线程并行处理软件包,因此在大型环境中更加高效;

mamba尽可能兼容conda,在解析、安装或卸载软件包等方面和conda具有相同的命令。

mamba同时也是一个巨大的包管理生态的一部分。该生态还包含quetz,一种开源的conda软件包的服务端;以及boa,一种快速的conda软件包的生成器。

micromamba是mamba的精简版,由C++编写。其文件非常小,不需要base环境和Python。由于它是静态版本,它可以放置任意位置,并且能良好运行。

官方文档:https://mamba.readthedocs.io/

mamba有2中安装方式 Mambaforge 和 micromamba。

安装

micromamba

$ mkdir ~/bin/
$ curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba

# 配置环境变量,配置完成之后micromamba安装的软件和创建的环境默认路径为~/micromamba
$ ~/bin/micromamba shell init -s bash -p ~/micromamba

# 放方便使用,可以使用alias将micromamba改为mamba
$ echo "alias mamba=micromamba" >> ~/.bashrc
$ source ~/.bashrc

调用集群micromamba

module load micromamba

Mambaforge

从 Miniforge3-23.3.1-0 开始,Miniforge3 和 Mambaforge 完全一样,官方建议使用Miniforge,Mambaforge 后面可能会被废弃。

以下为 Miniforge 的介绍,该项目用于替代 Anaconda。

Miniforge是一款Python环境和包管理工具,相比Anaconda,推荐使用Miniforge的原因主要有以下三个方面。

  • 首先,miniforge集成了Anaconda的核心工具:conda。conda是一个包和环境管理工具,因此,miniforge里面的conda和Anaconda里面的conda完全一样;你能用Anaconda做的安装、升级、删除包等功能,miniforge都能做;你能用Anaconda做的conda虚拟环境管理,miniforge也都能做。

  • 其次,miniforge是由社区主导,用GitHub托管,完全免费,使用 (而且只用)conda-forge 作为(默认)下载channel,避开了Anaconda的repository,从而也就避开了商业使用被Anaconda追责的问题。

  • 最后,Miniforge相比Anaconda更为灵活轻便,安装体积小、运行速度快、支持mamba、支持PyPy等。

$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh

# 默认安装目录为 ~/miniforge3/
$ sh Miniforge3-Linux-x86_64.sh -b -f

# 初始化
$ ~/miniforge3/bin/conda init

# 如果不想在账号登录时就启用 base 环境,可以如下设置。集群上建议如此设置
$ ~/miniforge3/bin/conda config --set auto_activate_base false

配置源

与conda类似,首次使用时需要配置国内的源以加快软件安装速度。

将以下内容保存到 ~/.mambarc 即可。

channels:
- defaults
show_channel_urls: true
default_channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
 conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

使用

# 激活mamba环境
$ mamba activate
(base) $

# 安装软件
(base) $ mamba install  -c bioconda  bwa
(base) $ which bwa
~/micromamba/bin/bwa

# 创建环境,可以用-p指定创建的环境的路径,默认路径为上面配置的路径~/micromamba/
$ mamba create -n RNASeq

# 激活创建的环境
$ mamba activate RNASeq
(RNASeq) $

# 在RNASeq环境中安装软件
(RNASeq) $ mamba install  -c bioconda STAR
(base) $ which STAR
~/micromamba/envs/RNASeq/bin/STAR

# 退出RNASeq环境
(RNASeq) $ mamba deactivate
(base) $

# 创建python版本为3.10的环境,并安装pytorch
$ mamba create -n torch python=3.10
$ mamba activate torch
(torch) micromamba install pytorch 

# 删除环境
$ mamba remove -n pytorch --all # 会有目录残留
$ mamba env remove -p pytorch # 无目录残留

# 退出 mamba 环境
(base) $ mamba deactivate
$

脚本中调用

$ mamba run -n rna-seq STAR --help
参考:

https://www.jianshu.com/p/0d9a738ca2dd

本文阅读量  次
本站总访问量  次