溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

轉(zhuǎn)錄組RNA-Seq如何使用docker+bioconda搭建分析環(huán)境

發(fā)布時(shí)間:2021-11-12 10:16:59 來源:億速云 閱讀:125 作者:小新 欄目:云計(jì)算

小編給大家分享一下轉(zhuǎn)錄組RNA-Seq如何使用docker+bioconda搭建分析環(huán)境,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

基于docker構(gòu)建環(huán)境

筆者使用docker的方式屬于網(wǎng)上不推薦的方式,類似于虛擬機(jī)鏡像。原因就是懶得去編寫dockerfile,感覺太麻煩。

極速安裝docker極速安裝docker-compose

#從以下網(wǎng)址下載docker-compose,將docker-compose文件放在path變量目錄下如:/usr/local/bin
https://github.com/docker/compose/releases

選擇docker鏡像并構(gòu)建基礎(chǔ)鏡像

因?yàn)橹暗腢buntu16.04過于老舊,這里直接選擇Ubuntu20.04的鏡像

#拉取ubuntu20.04鏡像
docker pull ubuntu:20.04

#獲取docker鏡像列表
docker images 或者 docker image ls

#確認(rèn)docker鏡像拉取完成之后,使用該鏡像創(chuàng)建一個(gè)docker容器
docker run --name first -it ubuntu:20.04 /bin/bash

#運(yùn)行完成之后進(jìn)入容器中
root@80cb4d36be59#

#安裝ssh等軟件
root@80cb4d36be59# apt update && apt install openssh-server vim net-tools curl

#安裝完成之后修改ssh配置文件,便于遠(yuǎn)程登錄
root@80cb4d36be59# vim /etc/ssh/sshd_config

#修改如下幾行并保存
Port 9020  #修改默認(rèn)端口號(hào)(可選)
ListenAddress 0.0.0.0  #默認(rèn)監(jiān)聽地址,所有地址
LoginGraceTime 2m      #允許用戶登錄耗時(shí)(可選)
PermitRootLogin yes    #允許root用戶登錄,docker默認(rèn)用戶是root用戶

#修改默認(rèn)root賬戶密碼,便于ssh遠(yuǎn)程登錄
root@80cb4d36be59# passwd root

#啟動(dòng)ssh服務(wù)
root@80cb4d36be59# service ssh start

# 獲取容器ip地址,
root@b8080a125313:/# ifconfig
eth0: flags=4163<up,broadcast,running,multicast>  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 0

lo: flags=73<up,loopback,running>  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

#打開一個(gè)新的終端測試下連接
ssh root@172.17.0.2 -p9020

#如果可以連接上則第一步構(gòu)建完成,我們commit創(chuàng)建自己的鏡像,打開終端
docker commit first ubuntu20.04-ssh:1.00

第二階段:安裝bioconda構(gòu)建基礎(chǔ)生信鏡像

  • 退出并刪除之前運(yùn)行的容器

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


  • 編寫docker-compose.yml文件,并使用docker-compose啟動(dòng)容器

    version: "3"
    services:
      RNASeq:
        image: ubuntu20.04-ssh:1.00 #此處為我們之前提交的鏡像名稱
        container_name: rnaseq #運(yùn)行容器名稱
        volumes:
          - /media/sliver/Element1/data:/opt/data:rw  #外掛data目錄,放置原始數(shù)據(jù)
          - /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 #分析結(jié)果輸出及中間文件目錄
        ports:
          - "9020:9020"
        network_mode: "host" #此處直接使用host模式,默認(rèn)為bridge模式都可以,host模式注意不能與服務(wù)器端口沖突
        environment:
          - TZ="Asia/Shanghai" #通過變量設(shè)置時(shí)區(qū),否則系統(tǒng)時(shí)間錯(cuò)誤
        command: service ssh start -D  #啟動(dòng)容器時(shí)啟動(dòng)ssh服務(wù)便于遠(yuǎn)程連接


  • 使用docker-compose.yml文件啟動(dòng)容器

    docker-compose.yml文件目錄下運(yùn)行docker-compose up啟動(dòng)容器
    并查看輸出日志,看是否存在錯(cuò)誤


  • 使用ssh登錄鏡像,并安裝bioconda

    #這里使用127.0.0.1地址登錄,每次容器重新運(yùn)行ip地址172網(wǎng)段的會(huì)發(fā)生變動(dòng)
    ssh root@127.0.0.1 -p9020
    
    #登錄成功,安裝bioconda
    curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    sh Miniconda3-latest-Linux-x86_64.sh
    
    #setup channels
    conda config --add channels defaults
    conda config --add channels bioconda
    conda config --add channels conda-forge


    #直接修改配置文件,添加清華源 vim ~/.condarc
    channels:
      - conda-forge
      - bioconda
      - defaults
    show_channel_urls: true
    default_channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
    custom_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
    
    #安裝幾個(gè)軟件測試下
    conda install fastqc
    conda install multiqc
    conda install STAR
    conda install hisat2


  • 構(gòu)建bioconda 第二階段鏡像

    #測試沒有問題,打開一個(gè)新的終端提交鏡像,第二階段鏡像后續(xù)可以用于各種生信環(huán)境
    docker commit rnaseq ubuntu20.04-bioconda


第三階段,安裝R、Bioconductor和RStudio-Server,構(gòu)建用于RNA-Seq(轉(zhuǎn)錄組)的鏡像

  • 安裝R及Bioconductor

    #切換回剛才的容器內(nèi)shell終端,安裝R
    apt install r-base
    
    #安裝完成之后查看版本
    R --version
    #得到輸出如下:
    R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
    Copyright (C) 2020 The R Foundation for Statistical Computing
    Platform: 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 the
    GNU General Public License versions 2 or 3.
    For more information about these matters see
    https://www.gnu.org/licenses/.
    
    #安裝Bioconductor,終端中運(yùn)行
    R
    #R環(huán)境提示符運(yùn)行
    if (!requireNamespace("BiocManager", quietly = TRUE))
        install.packages("BiocManager")
    BiocManager::install()
    
    #安裝完成之后我們測試下,安裝兩個(gè)R包
    BiocManager::install('edgeR')
    BiocManager::install("DESeq2")


  • 安裝RStudio Server,為了遠(yuǎn)程部署和運(yùn)行R

    #安裝RStudio Server
    apt-get install gdebi-core
    wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1093-amd64.deb
    gdebi rstudio-server-1.3.1093-amd64.deb
    
    #創(chuàng)建配置文件
    vi /etc/rstudio/rserver.conf
    #添加如下語句
    ###在兩個(gè)配置文件中添加以下語句
    ##系統(tǒng)的R程序所在位置,如果個(gè)人目錄下有利用anaconda安裝R,可能會(huì)報(bào)錯(cuò)
    rsession-which-r=/usr/bin/R  
    www-port=8787 ### 通過ip的8787端口連接
    
    
    vi /etc/rstudio/rsession.conf
    #添加如下語句
    www-port=8787 ### 通過ip的8787端口連接
    
    #添加用戶sliver,用于登錄RStudio Server
    useradd sliver
    passwd  sliver
    
    #創(chuàng)建該用戶home目錄,否則登錄成功,但是會(huì)報(bào)錯(cuò) Unable to connect to service
    mkdir /home/sliver
    chown -R sliver /home/sliver
    
    #檢查Rstudio-server是否能夠運(yùn)行并啟動(dòng)服務(wù)啟動(dòng)
    rstudio-server verify-installation
    rstudio-server start


  • 打開瀏覽器輸入:http://127.0.0.1:8787

    <img src="https://cache.yisu.com/upload/information/20210522/355/550318.png" >

  • 使用之前創(chuàng)建的用戶sliver及密碼登錄:

    <img src="https://cache.yisu.com/upload/information/20210522/355/550321.png" >

  • 說明配置成功。

提交鏡像,并修改docker-compose.yml文件
  • 提交鏡像,用于RNA-Seq轉(zhuǎn)錄組分析

    #打開一個(gè)新的終端運(yùn)行
    docker commit rnaseq ubuntu20.04-rnaseq:1.00
    
    #將當(dāng)前容器導(dǎo)出為文件
    docker export -o ubuntu_20.04_rnaseq.tar rnaseq
    
    #遷移鏡像可以從文件導(dǎo)入至鏡像
    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 #掛載數(shù)據(jù)目錄
          - /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 #掛載中間文件和結(jié)果目錄
        ports:
          - "9020:9020"  # ssh連接端口
          - "8787:8787"  # RStudio Server Web訪問端口
        network_mode: "host" #網(wǎng)絡(luò)模式為host,注意端口與服務(wù)器端口不能沖突
        environment:
          - TZ="Asia/Shanghai" #設(shè)置時(shí)區(qū),方式時(shí)間不對
        command: /bin/bash -c "rstudio-server start &amp;&amp; service ssh start -D" #同時(shí)啟動(dòng)兩個(gè)服務(wù)


以上是“轉(zhuǎn)錄組RNA-Seq如何使用docker+bioconda搭建分析環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI