写点什么

「毅硕|生信教程」 micromamba:mamba 的 C++ 实现,超越 conda

作者:INSVAST
  • 2024-10-24
    广东
  • 本文字数:2396 字

    阅读完需:约 8 分钟

「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda

1 Micromamba 简介

大家是否有这样的经历,使用 conda/anaconda 进行环境配置的是否速度非常慢,进度经常卡在“Collecting package metadata”上。甚至有时候需要安装的软件比较多,或者需要用到 conda-forge 这个最大的 channel,conda 能一直卡在 collecting 步骤上直到 http 连接超时也没能处理完毕。直到有天小编发现了 mamba 这个工具,进而发现了 micromamba(micromamba 是 mamba 包管理器的小型版本,采用 C++实现,具有 mamba 的核心功能,且体积更小,可以脱离 conda 独立运行,更易于部署),从此再也没有因为生信软件的安装配置而烦恼抓狂过。闲话少说,开始我们的教程。


2 Micromamba 教程

2.1 安装与配置

小编比较推荐国内用户从 miniconda 的安装起手,这里使用的是 TUNA 镜像站的链接,https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py311_24.4.0-0-Linux-x86_64.sh。下载完毕后,执行命令

sh Miniconda3-py311_24.4.0-0-Linux-x86_64.sh
复制代码

通常没有特殊需求的情况下,一路“enter,yes”把 miniconda 安装到 ${HOME}/miniconda3 即可。一般安装完毕后会询问是否直接执行 conda init 命令,回车即可。这样以后登录的时候就自动加载进入 base 环境,可以便捷使用 conda 的各种功能。如果没有继续回车执行,或者执行失败,则可以

${HOME}/miniconda3/bin/conda init
复制代码

成功以后,~/.bashrc 文件(其他 sh 则是其各自的 rc 文件路径)会有如下类似的内容

# 仅展示,非命令行代码# >>> conda initialize >>># !! Contents within this block are managed by 'conda init' !!__conda_setup="$('/home/snpbio/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"if [ $? -eq 0 ]; then    eval "$__conda_setup"else    if [ -f "/home/snpbio/miniconda3/etc/profile.d/conda.sh" ]; then        . "/home/snpbio/miniconda3/etc/profile.d/conda.sh"    else        export PATH="/home/snpbio/miniconda3/bin:$PATH"    fifiunset __conda_setup# <<< conda initialize <<<
复制代码

接着我们配置 condarc 文件,condarc 文件路径可以是 ~/.condarc ,也可以是 conda base 环境下的 $CONDA_PREFIX/.condarc。一般情况下使用 ~/.condarc 即可。创建 condarc 文件

cat > ~/.condarc << EOFchannels:  - conda-forge  - bioconda  - defaultsshow_channel_urls: truedefault_channels:  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rcustom_channels:  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudreport_errors: falseEOF
复制代码

然后我们就可以在 conda base 环境下安装 micromamba

conda install -n base micromamba
复制代码

安装完毕后,执行

echo "export MAMBA_ROOT_PREFIX=${HOME}/miniconda3" >> ~/.bashrc
复制代码

至此,miniconda 和 micromamba 的配置就完成了。(小编的这种做法是为了能利用 conda 的 api 去调用 micromamba 配置的环境,所以就把 MAMBA_ROOT_PREFIX 变量设置成和 conda base 的 $CONDA_PREFIX 一样)

2.2 测试

开始测试

用 micromamba 进行搜索

micromamba search sentieon
复制代码

运行神速,很快就得到结果了

# 仅展示,截取部分输出内容bioconda/linux-64                                   0.8sbioconda/noarch                                     0.9shttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.1shttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  1.0shttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.3shttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.3sconda-forge/noarch                                  16.9MB @   8.8MB/s  1.9sconda-forge/linux-64                                39.0MB @  12.3MB/s  3.1s Name     Version   Build                   Channel  Subdir────────────────────────────────────────────────────────────── sentieon 202308.03 h43eeafb_0              bioconda bioconda sentieon 202308.02 h43eeafb_0              bioconda bioconda sentieon 202308.01 h43eeafb_0              bioconda bioconda sentieon 202308    h43eeafb_0              bioconda bioconda
复制代码

然后我们可以创建环境并安装

micromamba create -n sentieon sentieon# 出现 Confirm changes: 时,输入Y
复制代码

非常快就创建好了,此时我们用 conda activate 切换环境。

conda activate sentieon
复制代码

2.3 结尾

本文也只是简单的入门,micromamba 的配置方法还有很多,感兴趣的同学可以访问https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html 获取更多信息。


关于 Sentieon

Sentieon 为完整的纯软件基因变异检测二级分析方案,其分析流程完全忠于 BWA、GATK、MuTect2、STAR、Minimap2、Fgbio、picard 等金标准的数学模型。在匹配开源流程分析结果的前提下,大幅提升 WGS、WES、Panel、UMI、ctDNA、RNA 等测序数据的分析效率和检出精度,并匹配目前全部第二代、三代测序平台。

Sentieon 软件团队拥有丰富的软件开发及算法优化工程经验,致力于解决生物数据分析中的速度与准确度瓶颈,为来自于分子诊断、药物研发、临床医疗、人群队列、动植物等多个领域的合作伙伴提供高效精准的软件解决方案,共同推动基因技术的发展。

截至 2023 年 3 月份,Sentieon 已经在全球范围内为 1300+用户提供服务,被世界一级影响因子刊物如 NEJM、Cell、Nature 等广泛引用,引用次数超过 700 篇。此外,Sentieon 连续数年摘得了 Precision FDA、Dream Challenges 等多个权威评比的桂冠,在业内获得广泛认可。

用户头像

INSVAST

关注

还未添加个人签名 2023-07-04 加入

还未添加个人简介

评论

发布
暂无评论
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda_教程分享_INSVAST_InfoQ写作社区