终极奥义! 生信软件安装神器~ conda 从入门到精通

图片

前言

图片

生物信息学分析常常需要用到许多不同的软件,常见安装方式有三种:

  1. 源码安装,要求安装者对包有较充分的认识,适用于开发者或深入学习和挑战者;

  2. 预编译版本安装,一般安装者将其拷贝到目录下即可运行;

  3. 第三方安装管理软件,如conda、Bioconductord等包管理软件和docker、singularity等镜像管理软件。

但是三种方式各有长处:

  1. 预编译版本最简单,但许多包并不提供这种版本。

  2. 绝大多数包都提供源码,但源码的依赖环境对于小白太过不友好(初期少不了砸键盘)。

  3. 第三方管理包帮你解决了环境依赖,

● 一些简单的了解和操作即可上手,通常来说是小白的首选,

● 但它上限绝不仅于此,像docker****, singularity等可以跨平台,一次搭建幸福一生!

图片

图片

目录

1. conda的安装

1.1 下载

1.2 安装

2. conda环境认识

2.1 目录结构

2.2 进入base环境

3. conda管理包

3.1 安装包

3.2 卸载包

4. 环境管理

4.1 创建环境

4.2 在指定环境中安装、删除包

4.3 不同环境切换

4.4 删除环境

4.5 退出环境

5. conda安装源的问题

5.1 默认源无包

5.2 包在哪个源有

5.3 指定源安装

6 conda配置文件

6.1 源的配置

6.1.1 将源写入配置文件

6.1.2 源的读取顺序

6.1.3 源的数量

6.2 其他信息的配置

7. 环境拷贝(clone)

7.1 输出配置信息

7.2 依据文本配置信息重新安装

01

conda的安装

常见的conda有两个类型,分别为minicondaAnaconda,前者是后者的轻量版本,

两者可安装的包是一致的,本文以miniconda安装为例。

1.1 下载

找到miniconda的下载页面,下载Linux版本,

图片

##下载链接
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh

图片

1.2 安装

上述下载的链接文件为安装condabash脚本文件,接下来执行命令,按操作提示

bash Miniconda3-py39_4.9.2-Linux-x86_64.sh

确认是否是想要安装的conda以及python版本,确认无误,直接Enter键进入下一步

图片

回答1,确定版本信息,直接Enter进入安装

此回答前有一些条款,这里选择yes,后Enter键进入下一步

图片

回答2,同意条约,选择yes

**重要:**此步骤询问安装路径,默认当前路径,版主当前是在/mnt/home/*/目录下(*表示作者名),执行的bash Miniconda3-py39_4.9.2-Linux-x86_64.sh命令,

  1. Enter键选择当前路径进行安装,

  2. 如果当前不是目标路径,可在 >>> 处直接输入目标路径,然后Enter键进入安装,

图片

回答3,安装路径,默认在当前目录

重要:版主选择no,并Enter进入下一步,

  1. 该步骤会执行conda init命令,将conda命令写入环境变量文件 .bashrc或.bash_profile 中,此后的每次进入bash都会进入conda基础环境

  2. 版主喜欢静静的被支持,不要过多的打扰(PS:也是许多设计追求的体验之一)。

图片

回答4,是否写入环境变量文件,选择否

至此,miniconda安装完毕,安装后,目录下多了个miniconda3的文件夹,

图片

多了个miniconda3的文件夹

02

conda环境认识

当安装完成后,你跃跃欲试,发现输入conda,被提示该命令不存在。

  1. 如果在1.2中的回答4中选择了yes,则不存在当前问题(虽然conda环境方便了,但是容易污染其他非conda的环境),

  2. 解决当前的问题就是了解miniconda3文件夹的构成。

图片

conda命令不存在

2.1 目录结构

conda的目录结构,描述几个和使用较相关的目录,

  1. /bin/文件夹,内含base环境的命令,如管理命令conda, activate等,

  2. /envs/文件夹,除base环境外的其他环境,在安装最初为空目录,可由conda create创建,

    ● 该目录下的每个子目录为一个环境,具有和base类似的目录结构,如/bin/目录

  3. /lib/文件夹,存放base环境的动态库,

  4. /pkgs/文件夹,存在base环境的包。

图片

miniconda3目录的子目录

2.2 进入base环境

版主喜欢使用时再进入环境,环境存在~/miniconda3/bin/activate文件中,

##进入base环境
source ~/miniconda3/bin/activate

图片

成功进入base环境的标识

现在输入conda有反应啦,出现以下提示,

图片

03

conda管理包

3.1 安装包

安装一个scipy包试试,

conda install scipy

图片

出现提示1,

图片

出现提示2,

出现以下结果,即表示安装成功,可使用conda list对比前后查看该包是否安装了。

图片

3.2 卸载包

##移除scipy包
conda remove scipy

图片

04

环境管理

多个不同的软件可能要求不同版本的依赖包和程序,如果都在base目录下进行,则每次都需要安装包和环境,

与之相对应的是conda的可以管理多个独立的环境

4.1 创建环境

conda安装初始时,只含有base一个环境,

##查看已有环境
conda info --envs

图片

创建新的环境,通过指定–name或-n参数,

  1. 比如默认的conda安装使用的是python3.9,而我的某些脚本只能在python2.x下运行,于是我可以创建一个新py2环境

  2. 新创建的环境在/envs/目录下,名称为–name指定的字符

##创建一个环境
conda create --name py2

图片新创建的环境将位于envs目录下

也可以通过conda info --envs来查看新的环境,

图片

4.2 在指定环境中安装、删除包

安装包到指定环境,通过指定–name或-n参数,

##安装python2.7到py2环境
conda install -n py2 python=2.7
##在该环境中安装numpy包
conda install -n py2 numpy

也可以将创建环境和安装包结合到一条命令中。

conda create -n py2 python=2.7

更新指定环境包,额外指定–name或-n参数,

#更新包
conda update -n py2 numpy
#删除包
conda remove -n py2 numpy

4.3 不同环境切换

在py2环境中安装了python2后,并不能在当前环境中获得python2,使用which查看python命令,发现

  1. 无论python还是python3命令均指向base环境中的python

  2. 而pyhton2指向服务器**/usr/目录**,也不是我们**的py2**环境的目录(其目录见本文4.1)

图片

这时需要在不同环境中切换,使用conda activate py2,激活py2环境,

  • 该命令的使用前提是,当前环境conda命令能够找得到,比如我们当前是在base环境中,能够使用conda命令,

执行命令后,切换到py2环境(见标识),

  • 无论python还是python2命令均指向py2环境中的python

  • 而pyhton3无指向,因为当前已不在base环境中

图片

命令总结,

##激活py2
conda activate py2
##激活base
conda activate base
conda activate

4.4 删除环境

想要删除某环境,例如意外输入创建了py4环境

##创建的环境名不符合预期
conda create -n py4 python=2.7
##将环境和其下的包删除
conda remove -n py4 --all

4.5 退出环境

程序运行完,需要退出conda环境,退出顺序 py2 --> base --> bash

  • 当前在py2环境,执行命令后退到base环境,再次执行命令完全退出了conda环境,到了bash环境
##退出当前环境
conda deactivate

图片

05

conda安装源的问题

为什么要关注源的问题?

  1. 最简单回答:源错了,包安装不了,或安装的包版本不对,或不适用某软件。

  2. 不同渠道的包存在相互覆盖,优先级等情况,我们来举个栗子。

5.1 默认源无包

admixture软件是群体混合分析常用的工具之一,可使用conda安装,但怎么我安装不了?

  • 安装出现报错,翻译成人话“在你的这四个源中找不到admixture软件包”。
##创建一个admixture环境安装该包
conda create -n admixture admixture

图片

5.2 包在哪个源有

到Anaconda官网查询,输入admixture检索,

图片

输入admixture进行检索

出现两条记录,第一条记录说明,该软件用于评估个体的祖先程度,对,这个就是梦中包,在bioconda源中,

  • 点击admixture绿色文字进入查看详情

图片

有两条记录,第一条就是目标

详细信息如版本号,发布的年份,包括安装方式,可以直接复制代码全装

图片

5.3 指定源安装

使用**-c或–channel**指定包的安装源,发现其能够找到该包,

##创建admixture环境并从bioconda安装admixture软件
conda create -n admixture -c bioconda admixture

图片

能够找到admixture包,选择y进入安装

06

conda配置文件

6.1 源的配置

将源写入配置文件,避免每次指定**-c**参数,也省去寻找源的繁琐步骤,

  1. conda的配置文件以隐藏文件形式存在,其路径 /mnt/home/author/.condarc

  2. 将源写入配置文件,可以通过命令,和手动编辑**.condarc**文件等方式

图片

conda的配置文件

图片

显示文件为空

##查看当前源
conda config --show-sources

图片

当前源也为空

6.1.1 将源写入配置文件

bioconda写入配置文件,

  • 可以看到**.condarc出现bioconda和defaults**两个渠道
##添加bioconda
conda config --add channels bioconda

图片

继续添加源conda-forger

conda config --add channels conda-forge
conda config --add channels r

6.1.2 源的读取顺序

上面一顿操作后,已经拥有下图中的四个源,当存在多个源时,搜索就有一定的顺序:

  1. conda将依次从上往下在该源中去寻找包,如果找到了则停止搜索,如果没找到,更换源继续搜索,

  2. 当在命令安装时使用**-c参数指定时,该指定源**搜索的优先级最高。

  3. 所以一般,在配置文件中拟定一个顺序。个人喜欢bioconda > conda-forge > r > defaults

图片

6.1.3 源的数量

百度搜索后发现有很多源,可编辑文件vim ~/.condarc进行添加,但是源不是数量越多越好

  • 虽然多能保证包被搜索到可能性更高,但同样搜索一个包的时间更长,

  • 某些源某时间段可能存在访问问题,当在问题源上搜索时会浪费大量的时间,有时几分钟也搜索不出结果。

  • 包存在依赖时,多个不同源的依赖包偶尔会存在冲突(版本不匹配),这种情况下卸载再安装依然会重复上述问题。

  • 因此将不同源的分别存到文件,如.condarc_bak_tsinghua, .condarc_bak_sjtu等,需要时将其改名为为**.condarc**文件即可,

可按以下方式使用某个源,先备份常用,再使用其他源。结束后可将文件名改回。

##保存常用的源配置
mv ~/.condarc ~/.condarc_bak
##使用清华源
mv ~/.condarc_bak_tsinghua ~/.condarc

清华源

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

上海交通大学源

channels:
  - https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
  - https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
  - https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge/

6.2 其他信息的配置

这部分在平时较少使用,笔者也关注,在此略过。

07

环境拷贝(clone)

当你辛苦构建了一个环境,里面拥有几十上百个软件,如果更换服务器需要重新安装,又得花费大量时间。

  • conda提供将当前环境的版本和依赖信息输出到文件,重新安装时直接读取该文件。

7.1 输出配置信息

admixture环境配置文件信息输出,

  • 输出信息包括环境名称、源配置、包以及路径等
##输出环境信息到文本
conda env export -n admixture > environment.yml

图片

admixture环境输出的信息

图片

braker2的环境输出信息

7.2 依据文本配置信息重新安装

##依照文本信息重新打造一个环境
conda env create -f environment.yml
##也可给环境重新命名
conda env create -n admixture_copy -f environment.yml

图片

图片

图片

THE END

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果conda无法安装软件,有几种可能原因。首先,确保你已经正确安装conda和所需的环境。你可以使用以下命令检查已经安装conda包: "conda list"。同时,你也可以使用以下命令更新conda: "conda update conda"。如果问题仍然存在,可以尝试以下方法来解决: 1. 检查网络连接: 确保你的网络连接正常,可以尝试使用其他网络或者使用代理。 2. 检查软件源: 你可以尝试切换conda软件源,使用以下命令: "conda config --add channels conda-forge"。然后尝试再次安装软件。 3. 检查依赖关系: 有时候安装软件需要依赖其他软件,你可以尝试先安装这些依赖软件,然后再安装目标软件。 4. 使用pip安装: 如果conda无法安装软件,你可以尝试使用pip来安装软件使用以下命令: "pip install package_name"。 如果以上方法都无效,你可以尝试重新安装Anaconda。确保在安装过程添加Anaconda为系统变量。如果问题仍然存在,你可以参考conda的官方文档或者寻求相关技术支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Conda及常用生信软件安装](https://blog.csdn.net/invalidsyntax/article/details/120743789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [「详解」conda 安装使用](https://blog.csdn.net/ViatorSun/article/details/118578818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值