千家信息网

转录组RNA-Seq如何使用docker+bioconda搭建分析环境

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,小编给大家分享一下转录组RNA-Seq如何使用docker+bioconda搭建分析环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去
千家信息网最后更新 2024年09月22日转录组RNA-Seq如何使用docker+bioconda搭建分析环境

小编给大家分享一下转录组RNA-Seq如何使用docker+bioconda搭建分析环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

基于docker构建环境

笔者使用docker的方式属于网上不推荐的方式,类似于虚拟机镜像。原因就是懒得去编写dockerfile,感觉太麻烦。

极速安装docker极速安装docker-compose

#从以下网址下载docker-compose,将docker-compose文件放在path变量目录下如:/usr/local/binhttps://github.com/docker/compose/releases

选择docker镜像并构建基础镜像

因为之前的Ubuntu16.04过于老旧,这里直接选择Ubuntu20.04的镜像

#拉取ubuntu20.04镜像docker pull ubuntu:20.04#获取docker镜像列表docker images 或者 docker image ls#确认docker镜像拉取完成之后,使用该镜像创建一个docker容器docker run --name first -it ubuntu:20.04 /bin/bash#运行完成之后进入容器中root@80cb4d36be59##安装ssh等软件root@80cb4d36be59# apt update && apt install openssh-server vim net-tools curl#安装完成之后修改ssh配置文件,便于远程登录root@80cb4d36be59# vim /etc/ssh/sshd_config#修改如下几行并保存Port 9020  #修改默认端口号(可选)ListenAddress 0.0.0.0  #默认监听地址,所有地址LoginGraceTime 2m      #允许用户登录耗时(可选)PermitRootLogin yes    #允许root用户登录,docker默认用户是root用户#修改默认root账户密码,便于ssh远程登录root@80cb4d36be59# passwd root#启动ssh服务root@80cb4d36be59# service ssh start# 获取容器ip地址,root@b8080a125313:/# ifconfigeth0: flags=4163  mtu 1500        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)        RX packets 27095  bytes 55050990 (55.0 MB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 26785  bytes 2478368 (2.4 MB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        loop  txqueuelen 1000  (Local Loopback)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#打开一个新的终端测试下连接ssh root@172.17.0.2 -p9020#如果可以连接上则第一步构建完成,我们commit创建自己的镜像,打开终端docker commit first ubuntu20.04-ssh:1.00

第二阶段:安装bioconda构建基础生信镜像

  • 退出并删除之前运行的容器

    #退出之前的容器root@80cb4d36be59# exit#删除该容器docker rm first


  • 编写docker-compose.yml文件,并使用docker-compose启动容器

    version: "3"services:  RNASeq:    image: ubuntu20.04-ssh:1.00 #此处为我们之前提交的镜像名称    container_name: rnaseq #运行容器名称    volumes:      - /media/sliver/Element1/data:/opt/data:rw  #外挂data目录,放置原始数据      - /media/sliver/Manufacture/RNA-Seq/root:/root:rw #外挂root目录,bioconda安装位置,减小镜像体积      - /media/sliver/Manufacture/RNA-Seq/ref:/opt/ref:rw #外挂reference目录      - /media/sliver/Manufacture/RNA-Seq/result:/opt/result:rw #分析结果输出及中间文件目录    ports:      - "9020:9020"    network_mode: "host" #此处直接使用host模式,默认为bridge模式都可以,host模式注意不能与服务器端口冲突    environment:      - TZ="Asia/Shanghai" #通过变量设置时区,否则系统时间错误    command: service ssh start -D  #启动容器时启动ssh服务便于远程连接


  • 使用docker-compose.yml文件启动容器

    docker-compose.yml文件目录下运行docker-compose up启动容器并查看输出日志,看是否存在错误


  • 使用ssh登录镜像,并安装bioconda

    #这里使用127.0.0.1地址登录,每次容器重新运行ip地址172网段的会发生变动ssh root@127.0.0.1 -p9020#登录成功,安装biocondacurl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shsh Miniconda3-latest-Linux-x86_64.sh#setup channelsconda config --add channels defaultsconda config --add channels biocondaconda config --add channels conda-forge


    #直接修改配置文件,添加清华源 vim ~/.condarcchannels:  - conda-forge  - bioconda  - defaultsshow_channel_urls: truedefault_channels:  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rcustom_channels:  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud


    # 使配置文件生效source ~/.bashrc#安装几个软件测试下conda install fastqcconda install multiqcconda install STARconda install hisat2


  • 构建bioconda 第二阶段镜像

    #测试没有问题,打开一个新的终端提交镜像,第二阶段镜像后续可以用于各种生信环境docker commit rnaseq ubuntu20.04-bioconda


第三阶段,安装R、Bioconductor和RStudio-Server,构建用于RNA-Seq(转录组)的镜像

  • 安装R及Bioconductor

    #切换回刚才的容器内shell终端,安装Rapt install r-base#安装完成之后查看版本R --version#得到输出如下:R version 3.6.3 (2020-02-29) -- "Holding the Windsock"Copyright (C) 2020 The R Foundation for Statistical ComputingPlatform: x86_64-pc-linux-gnu (64-bit)R is free software and comes with ABSOLUTELY NO WARRANTY.You are welcome to redistribute it under the terms of theGNU General Public License versions 2 or 3.For more information about these matters seehttps://www.gnu.org/licenses/.#安装Bioconductor,终端中运行R#R环境提示符运行if (!requireNamespace("BiocManager", quietly = TRUE))    install.packages("BiocManager")BiocManager::install()#安装完成之后我们测试下,安装两个R包BiocManager::install('edgeR')BiocManager::install("DESeq2")


  • 安装RStudio Server,为了远程部署和运行R

    #安装RStudio Serverapt-get install gdebi-corewget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1093-amd64.debgdebi rstudio-server-1.3.1093-amd64.deb#创建配置文件vi /etc/rstudio/rserver.conf#添加如下语句###在两个配置文件中添加以下语句##系统的R程序所在位置,如果个人目录下有利用anaconda安装R,可能会报错rsession-which-r=/usr/bin/R  www-port=8787 ### 通过ip的8787端口连接vi /etc/rstudio/rsession.conf#添加如下语句www-port=8787 ### 通过ip的8787端口连接#添加用户sliver,用于登录RStudio Serveruseradd sliverpasswd  sliver#创建该用户home目录,否则登录成功,但是会报错 Unable to connect to servicemkdir /home/sliverchown -R sliver /home/sliver#检查Rstudio-server是否能够运行并启动服务启动rstudio-server verify-installationrstudio-server start


  • 打开浏览器输入:http://127.0.0.1:8787

  • 使用之前创建的用户sliver及密码登录:

  • 说明配置成功。

提交镜像,并修改docker-compose.yml文件
  • 提交镜像,用于RNA-Seq转录组分析

    #打开一个新的终端运行docker commit rnaseq ubuntu20.04-rnaseq:1.00#将当前容器导出为文件docker export -o ubuntu_20.04_rnaseq.tar rnaseq#迁移镜像可以从文件导入至镜像docker import ubuntu_20.04_rnaseq.tar ubuntu20.04-rnaseq:1.00


  • 修改docker-compose.yml文件

    version: "3"services:  RNASeq:    image: ubuntu20.04-rnaseq:1.00    container_name: rnaseq    volumes:      - /media/sliver/Element1/data:/opt/data:rw #挂载数据目录      - /media/sliver/Manufacture/RNA-Seq/root:/root:rw #挂载root目录      - /media/sliver/Manufacture/RNA-Seq/ref:/opt/ref:rw #挂载reference目录      - /media/sliver/Manufacture/RNA-Seq/result:/opt/result:rw #挂载中间文件和结果目录    ports:      - "9020:9020"  # ssh连接端口      - "8787:8787"  # RStudio Server Web访问端口    network_mode: "host" #网络模式为host,注意端口与服务器端口不能冲突    environment:      - TZ="Asia/Shanghai" #设置时区,方式时间不对    command: /bin/bash -c "rstudio-server start && service ssh start -D" #同时启动两个服务


以上是"转录组RNA-Seq如何使用docker+bioconda搭建分析环境"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0