大数跨境
0
0

因为复杂生信环境配置,我从conda转向mamba

因为复杂生信环境配置,我从conda转向mamba Dr.X的基因空间
2025-12-24
0

写在前面的
以前对mamba略有耳闻,因其相比于conda具有解析和安装包速度更快的特点。但是我几乎没有用过mamba,一方面是因为我接触生物信息分析的时候mamba还没有流行,那会儿主要是用conda进行环境和包管理。另一方面是接触生物信息分析久了后,已经养成了使用固定的几个工具和编程的方式处理绝大部分数据分析任务的习惯。因此无论是安装新软件的需求还是学习这类不是特别重要的包管理软件的需求都下降了。直到最近,我配置一个新的分析流程环境时才开始了解mamba

什么是mamba

       在介绍mamba之前,先讲讲什么是conda。Conda是由Anaconda公司开发维护,核心作用是解决跨平台的软件包安装及解决依赖冲突的问题,并实现不同开发环境的独立管理,在数据科学、机器学习、科研计算等领域有广泛应用。 由于Conda是用Python实现的,其包依赖解析采用“串行计算”,在进行复杂环境或软件安装时,会出现 “解析卡顿”“安装缓慢” 甚至 “解析失败” 的问题。为了解决解决Conda这一核心痛点,Mamba采用C++实现核心解析引擎(libmamba库),采用 “并行依赖解析”,将包解析和安装速度提升数倍甚至十倍以上,同时解决了Conda复杂依赖下的解析失败问题。因此,可以理解为Mamba是基于Conda生态系统构建,完全兼容Conda的功能和生态的一种增强型衍生版。目前Mamba和Conda两者共用一套包仓库、环境格式和核心逻辑,用户几乎可以无缝切换。

为什么用到mamba

        最近因为数据分析需求,需要安装一个新的pipeline:KAS-analyzer。但是这个pipeline需要借助mamba安装环境。起因是我看到一篇Nature Method文章开发了一种名为KAS-seq(Kethoxal-assisted single-stranded DNA sequencing)的新技术,用于原位捕捉和映射基因组中的单链DNA(ssDNA),从而同时监测全局转录动态和增强子活性。这种技术的核心原理是使用N₃-kethoxal(一种叠氮标记的kethoxal衍生物),在活细胞中快速且特异性地标记ssDNA中的G碱基。标记后通过点击化学加生物素、亲和富集、建库测序,实现全基因组ssDNA定位。

       对于这个技术的而言,开发者定制了一套专用于分析这类测序数据的pipeline用于挖掘ssDNA的基因组定位和注释。并在github(https://github.com/Ruitulyu/KAS-Analyzer/tree/main)公开了源代码。安装这个pipeline的方法如下

git clone https://github.com/Ruitulyu/KAS-Analyzer.gitcd KAS-Analyzerbash ./setup.shsource ~/.bashrc# If anaconda or miniconda was not installed on your system. #OPTIONAL.KAS-Analyzer install -conda# Make sure you have Mamba installed. If not, you can install it in your base Conda environment with the following command:conda install mamba -c conda-forge# Install 'KAS-Analyzer' environment using mamba. mamba env create -f ./environment.yml# Decompress the genomic annotation files.find ./ -type f -name '*.xz' -exec xz -d {} +

       在我完成conda install mamba -c conda-forge这个命令准备用mamba创建环境时却遇到了报错

Error while loading conda entry point: conda-libmamba-solver (module 'libmambapy' has no attribute 'QueryFormat')


       经过查阅资料后了解到这个错误表明当前Conda配置使用了libmamba作为solver后端,但环境中libmambapy模块不兼容,导致加载失败。相应的解决方法是先重新切换回默认的solver再重新安装conda-libmamba-solver,然后再切换回libmamba

conda config --set solver classicconda install -n base conda-libmamba-solverconda config --set solver libmamba#再次使用mamba创建环境mamba env create -f ./environment.yml#创建环境成功后先输入eval "$(mamba shell hook --shell bash)"#再使用mamba activate即可激活环境mamba activate KAS-Analyzer


       安装好mamba后配置KAS-Analyzer环境确实快了许多,总共需要下载并解压缩配置1.2G的文件。在5分钟左右就搞好了。如果使用原装的conda,可能至少需要2小时。


【声明】内容源于网络
0
0
Dr.X的基因空间
【中国科学院博士】10年生命科学数据挖掘研究经验,关注生物医药领域体外诊断(IVD)方向,如肿瘤早筛、传染病未知病原快速检测中的技术创新及其与人工智能(AI)的赋能应用
内容 176
粉丝 0
Dr.X的基因空间 【中国科学院博士】10年生命科学数据挖掘研究经验,关注生物医药领域体外诊断(IVD)方向,如肿瘤早筛、传染病未知病原快速检测中的技术创新及其与人工智能(AI)的赋能应用
总阅读0
粉丝0
内容176