「毅硕|生信教程」 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 ]; theneval "$__conda_setup"
elseif [ -f "/home/snpbio/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/snpbio/miniconda3/etc/profile.d/conda.sh"elseexport PATH="/home/snpbio/miniconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<

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

cat > ~/.condarc << EOF
channels:- conda-forge- bioconda- 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
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
report_errors: false
EOF

然后我们就可以在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.8s
bioconda/noarch                                     0.9s
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.1s
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  1.0s
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.3s
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pk..  0.3s
conda-forge/noarch                                  16.9MB @   8.8MB/s  1.9s
conda-forge/linux-64                                39.0MB @  12.3MB/s  3.1sName     Version   Build                   Channel  Subdir
──────────────────────────────────────────────────────────────sentieon 202308.03 h43eeafb_0              bioconda biocondasentieon 202308.02 h43eeafb_0              bioconda biocondasentieon 202308.01 h43eeafb_0              bioconda biocondasentieon 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等多个权威评比的桂冠,在业内获得广泛认可。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows环境下Qt Creator调试模式下qDebug输出中文乱码问题

尝试修改系统的区域设置的方法&#xff1a; 可以修复问题。但会出现其它问题&#xff1a; 比如某些软件打不开&#xff0c;或者一些软件界面的中文显示乱码&#xff01; 暂时没有找到其它更好的办法。

渗透基础-rcube_webmail版本探测

简介 本文介绍了开源产品RoundCube webmail邮件系统的版本探测思路&#xff0c;并用go语言实现工具化、自动化探测。 正文 0x01 探测思路研究 探测系统版本&#xff0c;最理想的方法就是系统主页html代码中有特定的字符串&#xff0c;比如特定版本对应的hash在主页的html代…

【开源免费】基于SpringBoot+Vue.JS母婴商城系统 (JAVA毕业设计)

本文项目编号 T 030 &#xff0c;文末自助获取源码 \color{red}{T030&#xff0c;文末自助获取源码} T030&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 轮询已按下的键。 函数 pollKey 无等待地轮询键盘事件。它返回已按下的键的代码或如果没有键自上次调用以来被按下则返回 -1。若要等待按键被按…

【Ansiable】ansible的模块和主机清单

目录 一、介绍一些运维自动化工具 二、Ansible 概述/简介 三、Ansible 工作机制 3.1 内部工作机制 3.2 外部工作机制 四、Ansible 执行流程 五、Ansblie 安装以及日常操作模块***** 5.1 ansible 环境安装部署 5.2 ansible 命令行模块 5.2.1 command 模块 5.2.2 shel…

大数据-177 Elasticsearch Query DSL - 聚合分析 指标聚合 桶聚合

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

VSCode设置用鼠标滚轮控制字体大小

VSCode设置用鼠标滚轮控制字体大小 1. 在左下角&#xff0c;打开设置选项&#xff1a; 2. 找到字体设置&#xff0c;直接修改配置文件&#xff1a; 3. 在配置文件中添加如下内容&#xff1a; "editor.mouseWheelZoom": true别忘了上一行要以逗号结尾。 4. 按住ctrl…

西圣、酷盟和绿联哪款平替电容笔好?三款电容笔真实测评对比

随着越来越多的人开始体验无纸化学习和办公&#xff0c;电容笔成为了一个广受欢迎的iPad配件。而原装电容笔价格太高&#xff0c;如果能有性能相当&#xff0c;价格低廉的替代品&#xff0c;无疑会减轻一些经济负担。因此&#xff0c;平替电容笔应运而生&#xff0c;成为了许多…

Node-RED开源项目的modbus通信(TCP)

一、Modbus 通信协议 Modbus是一种串行通信协议&#xff0c;是Modicon公司&#xff08;现在的施耐德电气 Schneider Electric&#xff09;于1979年为使用可编程逻辑控制器&#xff08;PLC&#xff09;通信而发表。Modbus已经成为工业领域通信协议的业界标准&#xff08;De fact…

FineReport 模板参数查询示例

通过模板参数实现&#xff0c;参数为空查询全部 参数无值时查询全部&#xff0c;则在查询前&#xff0c;需要先判断参数是否有值&#xff0c;有值则执行过滤&#xff1b;无值则不过滤。 1、新建数据集 ds1 SELECT * FROM S订单2、添加模板参数 3、单元格配置 $货主地区 &qu…

【Triton教程】向量相加

Triton 是一种用于并行编程的语言和编译器。它旨在提供一个基于 Python 的编程环境&#xff0c;以高效编写自定义 DNN 计算内核&#xff0c;并能够在现代 GPU 硬件上以最大吞吐量运行。 更多 Triton 中文文档可访问 →https://triton.hyper.ai/ 在本教程中&#xff0c;你将使…

Golang | Leetcode Golang题解之第485题最大连续1的个数

题目&#xff1a; 题解&#xff1a; func findMaxConsecutiveOnes(nums []int) (maxCnt int) {cnt : 0for _, v : range nums {if v 1 {cnt} else {maxCnt max(maxCnt, cnt)cnt 0}}maxCnt max(maxCnt, cnt)return }func max(a, b int) int {if a > b {return a}return …

Android TextView实现一串文字特定几个字改变颜色

遇到一个需求&#xff0c;让Android端实现给定一个字符串指定下标的几个字颜色与其他字颜色不一致。 主要是用ForegroundColorSpan这个API来传入颜色值&#xff0c;用SpannableString来设置指定索引下标的字的颜色值。 这里通过给定一个输入文字描述框&#xff0c;要求输入指定…

线上问题排查-常见的线上问题

一、线上问题排查思路 明确问题&#xff1a;首先&#xff0c;需要明确线上出现了什么问题。这包括了解问题的具体表现、发生的时间、影响的范围等。通过收集用户反馈、查看监控系统告警等方式&#xff0c;收集问题相关信息。收集信息&#xff1a;收集与问题相关的各种信息&…

BIO CHINA2025生物发酵展高歌猛进,规模再升级, 亮点及活动发布,精彩就在此刻!

BIO CHINA2025生物发酵展高歌猛进&#xff0c;规模再升级&#xff0c; 亮点及活动发布&#xff0c;精彩就在此刻&#xff01; 目前国家高度重视生物经济与生物技术产业的发展&#xff0c;出台了一系列政策措施支持行业发展。生物发酵行业作为现代生物经济的重要支柱&#xff0…

【原创】java+ssm+mysql校园在线答疑管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Scrapy | 爬取笑话网来认识继承自Spider的crawlspider爬虫类

crawlspider 1. 创建crawlspider爬虫2. 实战-爬取笑话网笑话 本篇内容旨在拓展视野和知识&#xff0c;了解crawlspider的使用即可&#xff0c;主要熟悉掌握spider类的使用 CrawlSpider 提供了一种更高级的方法来定义爬取规则&#xff0c;而无需编写大量的重复代码。它基于规则…

Pseudo Multi-Camera Editing 数据集:通过常规视频生成的伪标记多摄像机推荐数据集,显著提升模型在未知领域的准确性。

2024-10-19&#xff0c;由伊利诺伊大学厄巴纳-香槟分校和香港城市大学的研究团队提出了一种创新方法&#xff0c;通过将常规视频转换成伪标记的多摄像机视角推荐数据集&#xff0c;有效解决了在未知领域中模型泛化能力差的问题。数据集的创建&#xff0c;为电影、电视和其他媒体…

【论文学习与撰写】,论文word文档中出现乱码的情况,文档中显示的乱码,都是英文字母之类的,但打印预览是正常的

目录 1、问题 2、解决方法 1、问题 写论文的时候&#xff0c;有时会出现乱码的情况&#xff0c; 如下图&#xff0c;这种情况&#xff0c; 可是 在打印预览的时候&#xff0c;就显示的正常 如下图&#xff0c; 2、解决方法 既然是文档正文显示错误&#xff0c;显示乱码&…

typeAliases以及mappers

typeAliases 我们来观察一下CarMapper.xml中的配置信息&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd&qu…