小编给大家分享一下转录组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搭建分析环境”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4702929/blog/4671699