利用 bioconda 管理生物信息软件

1 了解 conda,anaconda,miniconda,bioconda

套娃

1.1 conda

conda是一个软件模块管理工具,也是一个可执行命令,其核心功能是包管理与环境管理,可以用来管理Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN等语言的模块。在python中使用比较多,有点类似于pip工具。

conda的用途:

  • 快速安装、运行和升级包及其依赖项
  • 在计算机中便捷地创建、保存、加载和切换环境

1.2 anaconda

anaconda是一个开源的Python发行版本,包含了conda、Python等180多个科学包及其依赖项。

Anaconda具有如下特点:

  • 开源
  • 安装过程简单
  • 高性能使用Python和R语言
  • 免费的社区支持

其特点的实现主要基于Anaconda拥有的:

  • conda包
  • 环境管理器
  • 1,000+开源库

1.3 miniconda

通过以上对anaconda的介绍,我们了解到anaconda的数据包和安装包都很大,但我们用不到那么多,那么,miniconda登场!前者安装包较大,包含了较多默认安装包,而miniconda属于精简版本,可按照自己需求进行安装,推荐安装miniconda。

1.4 bioconda

bioconda是一个管理生物信息软件的工具软件,它基于anaconda可以进行生物软件的搜索、下载、安装、升级、删除等操作,可以将 bioconda 当成生物信息软件的AppStore。

bioconda的使用首先需要安装miniconda,在安装好miniconda之后,添加相应的生物信息软件相关的channel之后,就是bioconda了。换言之,bioconda就是一种生物定制版本的conda。bioconda是目前已知最好的生物软件管理工具之一,目前已经支持超过 7000 多款生物软件的安装。

bioconda的优点:

  1. 自动安装依赖,解决软件依赖问题,实现生物软件一键安装,再也不用体会源代码编译之苦了;
  2. 除了生信类软件,R 语言、Python语言软件包都可以进行安装;
  3. 方便进行管理和升级,软件版本可选择,同一个软件可以选择安装任意的版本;
  4. 使用普通用户进行安装,不需要管理员帮忙安装依赖软件;
  5. 创建环境,例如需要使用Python 3,但默认是Python 2.7,可以创建一个Python 3环境;
  6. 所有软件安装在同一目录下,方便进行管理和迁移。

2 bioconda的安装

2.1 miniconda的安装

## 安装miniconda
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh  # 下载miniconda安装包(官网即可获得对应系统的installer)
sh Miniconda3-latest-Linux-x86_64.sh  # 运行安装脚本进行安装
source ~/.bashrc  # 刷新配置
conda  # 输入conda命令,弹出帮助信息,则说明安装成功
image.png

2.2 添加channel

刚才安装的只是miniconda,conda默认的channel是用来管理python模块的,必须添加bioconda这个channel才能下载和安装生物软件。

  • 自用小tips
    channel就是软件包存在的位置(类似于其余语言的CPAN, CRAN, Bioconductor),conda install yyy 之所以能成功的前提,是软件 yyy 已经在某个channel里。
## 添加channel
conda config --add channels bioconda
conda config --add channels conda-forge  # conda-forge包含许多bioconda中尚不存在的包
conda config --set show_channel_urls yes  # 显示软件来源于哪个channel

镜像

eg. 清华镜像channel: https://mirrors.tuna.tsinghua.edu.cn/anaconda/

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/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
  • 小tips
    1. 不要重复添加channel,冗余的channel会让安装软件的过程变慢,且添加的先后顺序是非常重要且有意义的,要正确设置优先级(即,conda-forge是最高优先级);


      image.png
    2. 添加镜像要看服务器所在的位置,而不是使用者所在的位置。

3 利用bioconda管理软件

3.1 哪些软件可以用conda安装

  1. 网站查询
    https://anaconda.org/
    https://bioconda.github.io/
  2. conda search xxx # 搜索软件是否存在
    image.png
  3. 关键词搜索
    搜索引擎直接xxx conda

3.2 软件管理

## 利用bioconda管理软件
conda activate rnaseq  # 启动环境

conda install -y fastqc=0.11.7  # 安装软件,默认安装最新版本,-y 表示后面选项均选yes,即跳过确认步骤
conda install bwa samtools=1.9 bcftools fastp -y  # 也可多个软件一起安装
image.png
  • 小tips
    安装时找不到这个包咋整?
    1. 首先确认conda是否可以安装所需软件
    2. 确认是不是粗心大意打错名称
    3. 确认所需软件在conda中的名称
      sratoolkit —— sra-tools
conda list  # 查看当前环境所安装的软件
conda list fast*  # 查看符合正则表达式的软件
conda list -n rnaseq  # 查看指定环境下的软件
image.png
conda remove fastqc  # 卸载软件
conda remove -n rnaseq fastqc  # 卸载特定环境下的特定软件,如不指定-n参数,则需进入该环境之后才能进行卸载操作

conda update bwa  # 更新软件
conda update conda  # 升级conda本身

3.3 配置环境

3.3.1 why?

  1. conda会改变原来设置好的环境
  2. 不同软件的依赖会互相冲突
    A软件依赖Python 2.7,B软件依赖Python 3.8
  3. 方便项目管理
    基因组、转录组、Chip-seq ......
  • 小tips
    base环境里装包的时候要了解这个包对原生环境会造成什么影响(如果它在所有小环境都可以用的话,或许可以考虑装在base环境下,新手谨慎)。

3.3.2 创建独立环境

## 创建独立环境
conda create -n rnaseq  # 创建名为rnaseq的conda环境,-n 表示指定环境名称
conda activate rnaseq  # 启动rnaseq环境
conda deactivate  # 退出rnaseq环境

conda env list   # 列出现有独立环境
conda info --env
image.png
conda remove -n rnaseq --all  # 删除已创建环境及安装的包

conda create -n test1 bwa=0.7.16 blast=2.7.1  # 也可直接创建所需环境

conda create -n Python2.7
conda create -n py27 --clone Python2.7  # 环境重命名
conda remove -n Python2.7 --all

3.4 conda常用命令小结

3.4.1 环境管理

conda env list
conda create -n xxx
conda activate xxx
conda deactivate

3.4.2 软件管理

conda search xxx
conda install xxx
conda remove xxx
conda update xxx
conda list

4 conda大tips

4.1 mamba的使用

如果你曾遇到以下问题:
conda下载软件速度慢?
一直耗费时间处理环境问题?
环境问题处理失败?
那么,mamba绝对可以让你的软件安装过程变得过分丝滑!


https://github.com/mamba-org/mamba

mamba并没有完全重新把conda重新写一遍,而是加速了其中的一些线速度的步骤。

  1. conda install 进行改造,使其可以多线程并行下载
  2. 增加了一些新功能

4.1.1 mamba的安装与使用

首先切换至base环境,确保在base环境下安装mamba。

  • 小tips
    装在base环境中的包在其他小环境中可以调用,无需在每个环境下都安装一次。
## mamba的安装与使用
conda activate base  # 切换至base环境
conda install mamba -c conda-forge -y   # 安装mamba

除了启动环境外(conda activate xxx ),其他的conda命令都可以用mamba来代替,即直接将 conda 替换为 mamba 即可。

conda activate rnaseq
mamba search samtools  # 搜索软件
mamba repoquery search samtools  # 这个更快
mamba install samtools  # 安装软件
image.png

4.1.2 使用mamba查看依赖关系

mamba可以很方便地查看安装软件之间的依赖关系。

## 查看依赖关系
mamba repoquery depends -t fastqc  # 我依赖谁
mamba repoquery whoneeds -t python  # 谁依赖我
image.png

4.2 版本控制和迁移

作用:

  1. 发文章的时候提供版本号;
  2. 更换服务器、分享的时候保持软件版本不变。
## 用 conda list 的 export 功能
conda list  # 查看当前环境所安装的软件

conda list -n rnaseq --export > conda_rnaseq_list.txt  # 导出环境中安装的包的列表(软件名=版本号=build)
conda create -n rna -file conda_rnaseq_list.txt  # 安装导出的信息

## 用 conda env 的 export 功能 —— yml文件提供的信息更全面
conda env export -n rnaseq > rnaseq.yml  # 导出想要导出的环境
conda env create -f rnaseq.yml  # 根据导出的yml文件创建环境
conda env update -f rnaseq.yml  # 根据导出的yml文件更新环境
image.png

4.3 将软件安装到指定位置

## 将软件安装到指定位置
mkdir -p ~/biosoft/samtools  # 创建相关文件夹
conda install -p ~/biosoft/samtools samtools  # 使用-p参数指定安装位置

4.4 按照位置启动小环境

## 按照位置启动小环境
conda activate /home/yhz/miniconda3/envs/rnaseq  # 直接指定到安装位置即可

4.5 为特定环境设置特殊频道

## 为特定环境设置特殊的channel
conda config --env  --add channels genomedk

参考资料

https://www.jianshu.com/p/0534043b4471
https://www.bilibili.com/video/BV1hA411W7aC?spm_id_from=333.999.0.0
https://www.bilibili.com/video/BV1Yy4y117SX?p=15
https://www.jianshu.com/p/62f155eb6ac5

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容