生信中很多软件安装起来都相当麻烦,这里推荐两种途径来解决这一问题:bioconda 以及 docker
Bioconda
Anaconda 是一个非常常用的包管理软件,同时也会对环境进行统一的管理,而Bioconda正是其之下的一个专门管控生信软件的工具,具体安装步骤如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh sh Miniconda3-latest-Linux-x86_64.sh
conda config --set auto_activate_base false
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free 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 install bwa
conda create -n aligner tophat bowtie2 star
conda env list
conda activate aligner
conda deactivate
conda list
|
Docker
docker不同与bioconda,并非一个专门安装生信软件的管理工具,而是一个用于软件的打包、发布、移植的通用工具。
如所需生信软件在bioconda上并不存在,并且直接安装过于繁琐,则可尝试在docker hub上先搜索有无他人打包完成的镜像。若以上方法均难以实现,再自己配置打包。然而自己制作镜像的难度较大,这里只简单介绍一下docker的基础原理以及使用方法:
image – 镜像 与 container – 容器
镜像与容器的关系,有点类似于python中类与实例的关系
镜像是类,而容器是这个类的一个实例。也就意味着一个镜像可以创建很多的容器,这些容器独立运行,互不干扰。镜像本身并不能运行,它只能当作一个创建容器用的模板。
Volume – 卷(数据管理)
数据主要分为两类,持久化的与非持久化的。
而Docker擅长的是非持久化数据,即每个容器创立之时就会自动创建存储,此存储从属于容器,并与容器保持相同生命周期, 这意味着删除容器也会删除全部非持久化数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| sudo apt-get update sudo apt-get install -y docker-engine
docker build ~/docker_test -t ContainerName:TagName
docker search cnvkit docker pull docker.io/etal/cnvkit
docker run --rm etal/cnvkit /usr/local/bin/cnvkit.py --help
docker run -v `pwd`:/data_test -p 5000:80 -itd etal/cnvkit
docker exec [container ID] /usr/local/bin/cnvkit.py batch /data_test/NGS190530-11DF.sorted.dedup.bam -r /data_test/DF.flat.cnn -p 16 -d /data_test
|