您好,登錄后才能下訂單哦!
小編給大家分享一下轉錄組RNA-Seq如何使用docker+bioconda搭建分析環境,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
筆者使用docker的方式屬于網上不推薦的方式,類似于虛擬機鏡像。原因就是懶得去編寫dockerfile,感覺太麻煩。
#從以下網址下載docker-compose,將docker-compose文件放在path變量目錄下如:/usr/local/bin https://github.com/docker/compose/releases
因為之前的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:/# 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 #打開一個新的終端測試下連接 ssh root@172.17.0.2 -p9020 #如果可以連接上則第一步構建完成,我們commit創建自己的鏡像,打開終端 docker commit first ubuntu20.04-ssh:1.00
退出并刪除之前運行的容器
#退出之前的容器 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 #登錄成功,安裝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 #安裝幾個軟件測試下 conda install fastqc conda install multiqc conda install STAR conda install hisat2
構建bioconda 第二階段鏡像
#測試沒有問題,打開一個新的終端提交鏡像,第二階段鏡像后續可以用于各種生信環境 docker commit rnaseq ubuntu20.04-bioconda
安裝R及Bioconductor
#切換回剛才的容器內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,終端中運行 R #R環境提示符運行 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install() #安裝完成之后我們測試下,安裝兩個R包 BiocManager::install('edgeR') BiocManager::install("DESeq2")
安裝RStudio Server,為了遠程部署和運行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 #創建配置文件 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 Server useradd sliver passwd sliver #創建該用戶home目錄,否則登錄成功,但是會報錯 Unable to connect to service mkdir /home/sliver chown -R sliver /home/sliver #檢查Rstudio-server是否能夠運行并啟動服務啟動 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" >
使用之前創建的用戶sliver及密碼登錄:
<img src="https://cache.yisu.com/upload/information/20210522/355/550321.png" >
說明配置成功。
提交鏡像,用于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搭建分析環境”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。