讨论一下怎么迁移生信分析环境

1.诉求:

在日常的学习和工作中,随着经手的分析越来越多,各个组学数据的软件和工具常常会出现不能兼容的情况,所以很多时候装包也成了一个技术活。我之前的博客记录了那些年的内心os(fig1)。那么有没有更科学的工具来管理各种数据分析的环境,并且在不得不更换服务器和计算机的情况下,也不用为了装包而求助别人呢?

2.方案:

很多的教程都会用到conda,而且几乎都是两步法:

conda env export > environment.yml     #step1       
conda env create -f environment.yml   #step2 

但是,如果只是conda,只能说是够用,而docker才够高级。
Docker本身就是一门科学,我只能在下面po一些代码来实现环境迁移的目的。

#docker急速安装,快速完成不浪费时间 
curl  -sSfL get.docker.io -o get_docker.sh  
bash  get_docker.sh --mirror Aliyun

# pull centos:7的官方镜像
docker pull centos:7 
docker images # 查看镜像
docker run --name 10x_sc_docker -it centos:7 /bin/bash  #创建容器,一个镜像可以创建多个容器,而这每个容器就可以搭建不同组学数据的分析环境了。
docker ps -a  # 查看CONTAINER ID (每个容器都会有一个id)
docker start CONTAINER ID # 开启容器
docker ps  # 运行过后能看到STATUS的状态为UP ... ,此时说明容器已经打开了

docker exec -it 10x_sc_docker /bin/bash # 进入容器,此时你可以看到一个干净的centos环境 

这样,我们就可以在容器里搭建分析环境了,可以在这里装conda,再通过conda来装fastqc,bowtie2,star,R等等。如果需要迁移并部署到其他服务器,我们可以:

# 容器名称为刚刚的10x...,镜像名称可以自己定义,如sc:0.01, sc:v1等等
docker commit 容器名称 镜像名称
docker save –o sc.tar  镜像名称

#然后我们登录另一台服务器,这样就可以了。
docker load -i 镜像名.tar

3.补充内容

环境配置好了之后,我们还需要配套的数据库,基因组序列文件和原始数据,这些可以自己摸索了,但是呢如果配套的数据很大的话,我建议使用 docker 添加映射,这样在迁移镜像的时候,数据可以通过硬盘迁移,docker commit 这步也能耗费较少的时间,简单来说就是需要修改 hostconfig.json 和config.v2.json这两个配置文件。


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容