Skip to content

包括jupyterlab和rstudio的docker,用于快速建立生信分析环境。

Notifications You must be signed in to change notification settings

Richard-Li-lab-team/jupyterlab_rstudio

 
 

Repository files navigation

用集成了anaconda的docker快速布置生信分析平台

前言

众所周知,condadocker是进行快速软件安装、平台布置的两大神器,通过它们,在终端前敲几个命令、点点鼠标,软件就装好了。出了问题也不会影响到系统配置,能够很轻松的还原和重建。 不过,虽说类似rstudio或者jupyter notebook/lab这样的分析平台能够很快地找到别人已经做好的镜像,但是总归有功能缺失,而且有时要让不同的镜像协同工作时,目录的映射,权限的设置会让经验的人犯晕。 本着不折腾不舒服的本人一惯风格,我自己写了一个dockerfile,集成了rstudio serverjupyter lab,可用于生信分析平台的快速布置,也可供linux初学者练习用。

我的dockerfile地址

https://github.com/leoatchina/jupyterlab_rstudio 觉得好给个star吧!

安装方法

直接pull

docker pull leoatchina/jupyterlab_rstudio

build docker镜像

要先装好docker-cegit

git clone https://github.com/leoatchina/jupyterlab_rstudio.git
cd jupyterlab_rstudio
docker build -t leoatchina/jupyterlab_rstudio .

dockerfile里主要做的工作

  • 基于ubuntu16.04
  • 安装了一堆编译、编辑、下载、搜索等用到的工具和库
  • 安装了最新版anaconda,Rstudio
  • 安装了部分bioconductor工具
  • supervisor启动后台web服务
  • 一点点美化工作
  • 在衍生版本中,集成texlive

主要控制点

  • 开放端口:
    • 8888: for jupyter lab
    • 8787: for rstudio server
  • 访问密码:
    • 见dockerfile里的ENV PASSWD=jupyter
    • 运行时可以修改成你自己喜欢的密码
  • 主目录:
    • jupyter: /jupyter
    • rstudio: /home/rserver

运行

1. 使用docker-compose
  • docker-compose -f /home/docker/compose/bioinfo/docker-compose.yml up -d
  • docker-compose.yml的详细内容如下
version: "3"  # xml版本
services:
  jupyter:
    image: leoatchina/jupyterlab_rstudio  # 使用前面做出来的jupyter镜像
    environment:
      - PASSWD=password   # PASSWD , 在Docker-file里的 `ENV PASSWD=jupyter`
    ports:     # 端口映射,右边是container里的端口,左边是实际端口,比如我就喜欢实际端口在内部端口前加2或1。
      - 28787:8787
      - 27777:7777
      - 28888:8888
    volumes:   # 位置映射,右docker内部,左实际
      - /data/bioinfo:/mnt/bioinfo   # 个人习惯,里面会放一些参考基因组等
      - /home/github:/mnt/github     # 个人习惯2,比如我的vim配置会放里面
      - /tmp:/tmp
      - /data/disks:/disks
      - /data/work:/work
      - /home/root/.ssh:/root/.ssh   # 这个是为了一次通过ssh-keygen生成密钥后,能多次使用
      - /home/root/.vim:/root/.vim   # 为了不同的container能重复利用一套已经下载的vim插件
      - /home/jupyter:/jupyter       # 关键目录之1,jupyter的主运行目录
      - /home/rserver:/home/rserver  # 关键目录之2,rtudio的工作目录

会运行一个名为bioinfo_jupyter_1container,是由目录bioinfo+镜像jupyter+数字1组成

2. 使用docker run命令

和docker-compose差不多的意义

docker run --name jupyter  \
-v /data/bioinfo:/mnt/bioinfo \
-v /home/github:/mnt/github \
-v /tmp:/tmp \
-v /data/disks:/disks \
-v /data/work:/work \
-v /home/root/.ssh:/root/.ssh \
-v /home/root/.vim:/root/.vim \
-v /home/jupyter:/jupyter \
-v /home/rserver:/home/rserver \
-p 27777:7777 \
-p 28787:8787 \
-p 28888:8888 \
-e PASSWD=password \
-d leoatchina/jupyterlab_rstudio     #使用jupyter镜像, -d代表在后台工作
运行后的调整
  • 如上,通过IP:[27777|28888|28787]进行访问
  • 打开 运行机器的IP:28787,修改下R的源,bioClite源
  • 进入rstudio-server的用户名是rserver
  • 请打开pkgs.Rconda.sh,我收集了一些R包和conda生信软件的安装脚本

网页端的shell

本docker中集成的jupyter labrstudio的功能不用太多介绍,我要介绍的是集成的bash环境,通过file->new->terminal输入bash,就会打开一个有高亮的 shell环境

  • jupyterlab jupyterlab
  • rstudio rstudio

有两个好处

  1. 只要你记得你的访问密码PASSWORD(仔细看我的启动脚本),IP、端口,就可以通过网页端进行操作。
  2. 启动perlpython,shell的分析流程后,可以直接关闭网页,不需要用nohup启动,下次重新打开该页面还是在继续运行你的脚本 。这个,请各位写个分析流程,自行体会下,也是我认为本次教程的最大亮点。

.jupyterc.bioinforc,我玩的小花招

众所周知,bash在启动时,会加载用户目录下的.bashrc进行一些系统变量的设置,同时又可以通过source命令加载指定的配置,在我的做出来的jupyter镜像中,为了达到安装的生信软件container分离的目的,在删除container时不删除安装的软件的目的,我设置如下source次序

  • root目录下的.bashrc(集成在镜像里) : source /juoyter/.jupyterc(自己建立)
  • /jupyter/.jupyterc中(注意这个没集成) : source /jupyter/.bioinforc

我的配置

/jupyter/.jupyterc

export PATH=$PATH:/mnt/bioinfo/bin
export PATH=$PATH:/mnt/bioinfo/annovar
export PATH=$PATH:/mnt/bioinfo/firehose
export PATH=$PATH:/mnt/bioinfo/gatk4

conda install -p 快速安装生信软件

各位在学习其他conda教程时,经常会学到conda create -n XXX新建一个运行环境以满足特定安装需求,还可以通过source activate激活这个环境。 但其实还有一个参数-p用于指定安装目录,利用了这一点,我们就可以把自己dockerconda安装软件到非conda内部目录,而是映射过来的目录

conda install -p /mnt/bioinfo -c bioconda roary

enter description here

如此,就安装到对应的位置,如samtools,bcftools,varscan等一众生信软件都可以如此安装。

关键的,在安装这些软件相应container被删除后,这些通过-p安装上的软件不会随着删除,下次重做container只要目录映射一致,不需要重装软件,不需要重装软件,不需要重装软件

快速布置生信软件

  1. 启动分析流程后,发现代码写错了要强行结束时,只要删除container,不需要一个个去kill进程
  2. 在另一个机器上快速搭建分析环境,把docker-file在新机器上bulid下,各个.xxxrc文件放到正确的位置,然后把已经装上的软件复制过去就能搭建好分析环境。

About

包括jupyterlab和rstudio的docker,用于快速建立生信分析环境。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 37.8%
  • R 31.4%
  • Shell 27.1%
  • Python 3.7%