利用 bioconda 管理生物信息软件

article/2025/3/17 19:13:05

利用 bioconda 管理生物信息软件

如需视频讲解,请移步:一只小蛮要

【要知道 · bioinfo】利用 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命令,弹出帮助信息,则说明安装成功

在这里插入图片描述

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是最高优先级);
      在这里插入图片描述
    2. 添加镜像要看服务器所在的位置,而不是使用者所在的位置。

3 利用bioconda管理软件

3.1 哪些软件可以用conda安装

  1. 网站查询
    https://anaconda.org/
    https://bioconda.github.io/
  2. conda search xxx # 搜索软件是否存在
    在这里插入图片描述
  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  # 也可多个软件一起安装

在这里插入图片描述

  • 小tips
    安装时找不到这个包咋整?
    1. 首先确认conda是否可以安装所需软件
    2. 确认是不是粗心大意打错名称
    3. 确认所需软件在conda中的名称
      sratoolkit —— sra-tools
conda list  # 查看当前环境所安装的软件
conda list fast*  # 查看符合正则表达式的软件
conda list -n rnaseq  # 查看指定环境下的软件

在这里插入图片描述

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

在这里插入图片描述

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  # 安装软件

在这里插入图片描述

4.1.2 使用mamba查看依赖关系

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

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

在这里插入图片描述

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文件更新环境

在这里插入图片描述

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


http://chatgpt.dhexx.cn/article/qdgVig4E.shtml

相关文章

IMex和IntAct数据库简介

欢迎关注微信公众号《生信修炼手册》! 蛋白质相互作用的数据库非常的多,比如DIP, MINT, IntAct, BioGRID等,不同数据库中的信息存在了大量的冗余,而且在不同数据库之间进行检索也非常的费力,为了减少不同数据库的冗余&#xff0c…

【Bio】基础生物学 - 基因 gene

文章目录 1. DNA 脱氧核糖核酸、RNA 核糖核酸1.1 核苷酸1.2 脱氧核糖核酸1.3 核糖核酸 2. 基因2.1 基因组2.2 染色体2.3 基因与脱氧核苷酸的牵连2.4 基因与DNA的牵连2.5 基因与染色体的牵连 Ref 1. DNA 脱氧核糖核酸、RNA 核糖核酸 1.1 核苷酸 核苷酸 (Nucleotide) \blue{\tex…

Bioedit 使用

1. 下载: 地址一搜就有,软件界面如下 BioEdit Download - Research software utility for creating and editing biological sequences 2. 酶切位点分析 构建过表达质粒、双荧光素酶质粒必用功能。以人的MYOD1基因为例 ,分析酶切位点。 &…

BIO~~

BIO~~ 第一章 Java的I/O演进之路2.1 I/O 模型基本说明2.2 I/O模型Java BIOJava NIOJava AIO 2.3 BIO、NIO、AIO 适用场景分析 第三章 JAVA BIO深入剖析3.1 Java BIO 基本介绍3.2 Java BIO 工作机制3.3 传统的BIO编程实例回顾客户端案例如下服务端案例如下小结 3.4 BIO模式下多发…

python处理数据的一些代码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、如何读取txt文件,将其转化为DataFrame格式二、给DataFrame添加列名三、删除指定行四、读取csv文件,不让第一行成为列名五、读取DataFram…

BioGRID:蛋白质相互作用数据库

欢迎关注微信公众号《生信修炼手册》! BioGRID数据库是一个老牌经典的蛋白质相互作用数据库,在今年9月份刚刚分布了最新版本3.5.165,该版本从66,164篇文献中整理出了1,607,037个蛋白质相互作用,28,093个嵌合体信息以及726,378个转录后修饰PTM…

(NCRE网络技术)中小型网络系统总体规划与设计方法-知识点

欢迎您阅读此系列文章,文章参考自《全国计算机等级考试三级教程.网络技术》。内容为NCRE三级网络技术主要知识点以及常考点,此知识点总结参照《三级网络技术考试大纲(2018年版)》。阅读此系列文章可以帮助您快速、轻松考取相应证书!祝您阅读愉…

Linux系统如何查看服务器带宽及网络使用情况

文章目录 前言  linux查看服务器带宽具体方法  一、使用speedtest-cli命令查看下载和上传最大流量值  二、查看网卡、网络的详情   1.查看服务器网络端口   2.ethtool命令查看宽带大小 三、nload命令实时统计网卡带宽使用率  四、dstat -n命令实时监测网络的状态…

计算机网络的组成及其逻辑结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、计算机网络的组成 计算机系统: 数据通信系统 网络软件及网络协议 二、计算机网络的逻辑结构 资源子网 通信子网 总结 前言 计算机网络是在20世纪6…

Linux中centos修改系统时间并写到硬件,Linux中centos设置定时自动同步网络时间

文章目录 前言一、centos修改系统时间并写到硬件1.1查看当前的系统时间1.2修改系统时间1.3查看硬件时间1.4同步系统时间和硬件时间1.5本地时间写入硬件时间 二、centos设置定时自动同步网络时间2.1安装ntpdate工具2.2CentOS安装/操纵crontab2.3启动crontab并查看状态2.4写一个c…

计算机网络的发展简史

目录 前言一、互联网发展历史1. 第一阶段:ARPANET2. 第二阶段:三级结构互联网3. 第三阶段:多层次ISP互联网 二、中国互联网的发展简史1. 发展阶段2. 公共网络 总结 前言 时间是2022年的6月,当真正的注意到现在的时间时不禁感叹时…

浅谈网络舆情监测系统中爬虫的设计及系统架构

前言 说到网络舆情监测想必很多人都不陌生。可以跟大家这么说吧。爬虫所能带来的商业价值适用并深存于所有小-中-大企业中,尤其做网络舆情的大数据公司所有的业务基本都必须依托于爬虫来开展它的战略布局,毕竟有了米才能做饭嘛~ 不信的话我简单的来采访一下做舆情项目的相关…

基于java的网络在线考试管理系统的设计与实现--毕业开题报告

基于java的网络在线考试管理系 统的设计与实现开题报告–毕业设计 最近grace刚完成毕业设计 通过了赶紧来给宝贝们分享我的成果哈哈 设计题目:基于java的网络在线考试管理系统的设计与实现 一、选题依据: 1.国内外有关的研究动态 在线考试系统在国内…

校园网系统集成方案设计

校园网系统集成方案设计 第一篇的文章献给我的网络系统集成大作业,这篇文章是关于校园网系统集成方案的设计,文章有很多不足仅限于我目前的水平。 第一章 前言 随着经济的发展,信息起着越来越重要的作用。计算机、网络和多媒体等信息技术的…

VM虚拟机上的网络设置

1. 前言 一般Linux编程时,经常都会使用虚拟机跑Linux系统,VMware Workstation Pro 虚拟机里的系统不管是Linux、还是windows、还是其他系统想要上网就必须配置好虚拟网络连接方式。VMware Workstation 支持共享、桥接,选择网卡的方法自定义上网方式。 如果虚拟机里的系统想…

Cisco Packet Tracer 网络系统工程实训大作业【附网络拓扑图】

文章目录 前言网络拓扑图资源项目基本要求项目一项目二项目三 实验原理静态路由基本原理VLAN基本原理OSPF的基本原理 项目的实现项目一的设计与实现网络拓扑图接口信息配置流程连通性测试 项目二的设计与实现网络拓扑图接口信息配置流程连通性测试 项目三的设计与实现网络拓扑图…

零信任网络

“前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。” 前言 - 床长人工智能教程 零信任: 零信任概念是由网络去边界化发展改进而来。之前网络的建设理念中,将网络分…

Linux系统中网络管理命令和查看网络配置的命令

前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 说明:本人只在csdn写博客,如果在其他网站上看到,请不要信 网络管理命令和查看网络配置的命令 …

基于卷积神经网络的电影推荐系统

基于卷积神经网络的电影推荐系统 前言1.实现效果1.1 算法运行结果1.2 系统主要界面 2.主要代码实现2.1 网络模型代码2.2 django代码 前言 如今协同过滤等传统推荐算法被广泛用于推荐,但也存在冷启动、矩阵稀疏等问题,本项目用深度学习来实现电影推荐&am…

炸鸡网络验证系统

文章目录 前言一、炸鸡网络验证系统二、程序演示与下载1.程序演示2.程序下载 前言 今天介绍的是一款才了解到的系统,网络验证系统。具体介绍如下 一、炸鸡网络验证系统 炸鸡网络验证系统基于PhpMySql数据库架构的网络验证系统,安全稳定、性能强悍、承…