生信马拉松 Day14 conda!

今天终于学到了怎么安装软件,顺道解决了conda是什么的疑惑

anaconda:所有语言的包、依赖和环境管理器,几乎全平台(Windows、macOS、Linux)

相比手动装软件,可以解决很多问题

来自:生信技能树,生信马拉松,萌老师

anaconda适合于本地安装,miniconda是本节课学习的安装在自己服务器账号的软件

miniconda没有图形界面

服务器在国内,conda安装时就使用国内镜像,通常选择清华或者北外,如果服务器在国外就选择官网

可以使用 wget 下载conda的安装包

-c continue,断点续传,恢复获取部分下载的文件

也可以检索conda+清华/北外镜像从网站上获取

安装miniconda3

1.运行 bash Miniconda3-latest-Linux-x86_64.sh

2.查看并同意软件license

3.选择安装位置

4.同意conda初始化

5.重新加载~/.bashrc文件或者重新开shell窗口

6.设置是否要默认启动base环境(可选)

代码语言:sh
复制
conda -h
# 能输出conda 的帮助文档就说明安装成功
conda config --set auto\_activate\_base false 
#这样设置之后就每次需要手动登录conda,一般不设置

conda需要添加频道

类似于电视机的频道,要收得到对应的频道的信号才能看到该频道的节目,要配置好conda的频道才能用conda安装该频道的软件

代码语言:sh
复制
conda config --add channels <URL>

conda config --set show_channels_urls yes
#可以帮我们找到出错的包是从哪个频道下载的,那么只要换个地方下载即可

不要重复添加相同的频道

添加的顺序是有意义的,因为我们用的大多数软件主要在bioconda里,所以把相应频道列在最前面,conda就会最先找

如何查看配置镜像结果:配置镜像完成后会在~/.condarc 文件中写入

代码语言:sh
复制
cat ~/.bashrc

查看镜像配置的结果

可以考虑手动删除defaults,因为是官方频道,有时连接比较慢

代码语言:sh
复制
sed -i‘/defaults/d' ~/.condarc

创建独立小环境建议不要往base环境安装任何软件包,如果不小心装进base里了,那只要conda还能用就不管它,原因如下:

1、conda会改变原来设置好的环境

2、不同的软件的依赖会相互冲突

3、方便项目管理(基因组,转录组,Chip-seq,相应就算是同一个软件在不同的环境里都要重新安装一遍,不用担心多个安装软件占据太多存储,因为软件远不如数据大)

代码语言:sh
复制
conda create -n rna

#创建一个名为rna的conda小环境

-n 指定环境名称

conda env list
#展示全部已经有的环境
conda info -env

看环境的信息,两者效果相同

conda remove -n rna --all

删除环境及包

conda create -n rna python=3.8 -y

创建环境时可以预装软件并指定版本

-y的作用是代替我写yes去安装

conda只要能正常使用就没有必要升级,但3.8以后conda有较大的更新,更早的版本conda建议升级

创建小环境成功之后会出现3个done,代表成功了

哪些软件可以用conda安装?

方法1:网站查询

https://anaconda.org/search

https://bioconda.github.io/

方法2:conda search xxx

方法3:关键词检索

conda可以一次安装多个软件,但是容易遇到报错

下载过程可能受网络影响没下载成功,可以自行再运行一遍一遍,出现3个done表示安装成功,并通过调用软件的帮助文档检查是否安装成功

不指定版本时安装最新的版本

问题1:如何安装旧版本

1、conda search fastq 查看有哪些可以安装的版本

2、安装指定版本的软件

conda install fastqc=0.11.7 注意不要有空格,否则就变成安装fastqc = 0.11.7三个内容

如果要升级,可以conda update或者指定最新版本去安装

安装包的名称和实际调用的程序可能不同

代码语言:sh
复制
conda list

#查看当前环境所安装的软件

conda list fast*

查看符合正则表达式的软件

conda list -n base python

查看指定环境的软件

conda remove fastq

删除软件

一般不删除,可能会引起不必要的依赖相关的玛法

conda remove -n rna fastqc

不指定-n就得进入该环境之后才能删除操作

-y参数能够跳过确认执行的步骤

安装软件的另一种方式:用yml文件安装

适用于已经配置好的环境加粗导出给别人下载安装

导出当前环境:

代码语言:sh
复制
conda env export envname > env.yml #(跨平台均适用)

conda list --explicit > env.txt #(仅限相同平台)

导入环境:

代码语言:sh
复制
conda env create --name <envname> --file env.yml
conda create --name <env> --file <file this file>

常见报错及解决方法:CondaHTTPerror

此时为服务器网络问题,如果是本地网络问题那就根本连不上服务器

1.确认当前服务器网络正常 (可尝试 ping www.baidu.com

2.conda clean -a 清空环境中所有的缓存tarball 压缩包,index,package(没有安装的包)

3.把~/.condarc中的https中的s去掉变成http,去掉安全相关的交互信息

4.换个时间再试试

一直在solving environment

1.网络差,换个时间试试

2.conda clean -a 清空环境中的缓存

3.实在不行就重新创建环境安装

频道404

添加的频道不存在,从.condarc文件中删除错误频道后重新添加

conda config --add channels https://xxxx

依赖库缺失——缺啥补啥

如果提示确实libtbb.so.2 conda install tbb=2020.3

TIPS

1、把~/.bashrc 当做整体不容易出错

个人感受:能用yml安装还是憋整自己一个个手装了,特别是有个别包打死装不上的时候,我的multiqc就怎么也搞不上,解决方法是把全部的都update,multiqc能用了,原来包的老版本都丢了,尴尬

生信技能树,生信马拉松,萌老师