植物表型GWAS关联分析流程
GWAS镜像下载和数据准备
#在不同镜像下载仓库中,一部分是国内仓库,一部分是国外仓库(需要魔法)。
#对于omicsclass/pop-evol-gwas这个镜像,保存于docker.io仓库,需要魔法访问。
#服务器无法访问外网,因此可以在笔记本中下载,再上传到服务器。
一、镜像下载
1、在windows系统的Docker Desktop软件中搜索该镜像image,选择需要的版本(当前选择latest版本),然后点击“Pull”进行下载。
2、我们在Images页面中可以查看已有的镜像。对于当前镜像来说,镜像ID为efcdf45e89d06440939daac3c38a724c3c39e2b7fc1ada5fdab1e644cf2fdef6。
二、镜像打包
1、打开powershell软件,依次输入以下命令:
docker images
查看docker中的镜像,我们可以看到当前展示的镜像ID为 efcdf45e89d0,我们可以直接使用这个ID进行打包镜像。
docker save -o pop-evol-gwas.tar efcdf45e89d0
结果提示:write .docker_temp_241472539: There is not enough space on the disk.表明没有足够的存储空间,因此,我们可以换一个磁盘,并选择一个新的路径(保存路径)。
xxxxxxxxxx
d:
cd .\gwas\
保存该镜像,ID为efcdf45e89d0,保存的文件格式为.tar,可以直接作为镜像导入的格式。
docker save -o pop-evol-gwas.tar efcdf45e89d0
2、docker只能由管理员(root)安装,为了在不同用户中使用docker,因此需要利用如下命令修改。
创建一个名为docker
的用户组,sudo
:以超级用户权限运行命令,groupadd docker
:创建一个名为docker
的组。如果docker
组已经存在,则此命令不会创建新的组,直接跳过。
sudo groupadd docker
将用户hztext
添加到docker
组,gpasswd -a hztext docker
:将用户hztext
添加到docker
组。这样,用户hztext
就可以在不使用sudo
的情况下运行Docker命令。
sudo gpasswd -a hztext docker
在执行上述命令后,用户需要注销并重新登录,或者使用以下命令重新加载用户组配置:
newgrp docker
之后,你可以通过运行docker ps
命令来测试是否可以不使用sudo
来执行Docker命令:
docker ps
三、镜像上传和加载
1、利用termius软件将该打包的镜像文件上传至服务器。
在文件上传路径中,执行以下命令来导入镜像(加载后可以删除源文件压缩包tar)
docker load -i pop-evol-gwas.tar
查看docker中现有镜像
docker images
看到镜像列表中有一个<none>
的REPOSITORY和TAG,并且显示了镜像ID和其他信息,这通常表示导入的镜像缺少名称和标签。这种情况可能是因为导入的.tar
文件中没有指定镜像的名称和标签,或者在某些情况下,镜像在创建时没有被正确标记。
解决方法:为镜像打标签
为了方便管理,你可以为这个镜像手动打一个标签。你可以使用docker tag
命令来为镜像添加标签。比如,你可以为这个镜像打上pop-evol-gwas:latest
的标签:
docker tag efcdf45e89d0 pop-evol-gwas:latest
efcdf45e89d0
是镜像的ID,你可以用Docker提供的这个ID来引用该镜像。
pop-evol-gwas:latest
是你为该镜像指定的新名称和标签。
2、查看内存和核心数
可以使用free
命令查看内存的总量、已用内存和可用内存:
free -h
由上图可见,102G是最大可调用的内存。
查看CPU核心数量:
nproc
当前服务器核心数为56。
3、在目标文件夹新建一个文件夹my_gwas来保存GWAS输入数据和处理输出数据。
mkdir my_gwas
本次选择64G内存、24线程来处理数据。
xxxxxxxxxx
docker run --rm -it -m 64G --cpus 24 -v /home/hztext/dai/Rice_GWAS/my_gwas:/work pop-evol-gwas:latest
docker run
:启动一个新的Docker容器。
--rm
:容器在退出后会自动删除。这有助于防止堆积大量临时容器。
-it
:以交互模式运行容器,并附加一个终端。这样你可以在容器中执行命令并与之交互。
-m 64G
:限制容器的内存使用量为64GB。容器最多只能使用64GB的内存资源。
--cpus 24
:限制容器的CPU核心数为24个。容器最多可以使用24个逻辑CPU核心进行计算。
-v /home/hztext/dai/Rice_GWAS/my_gwas:/work
:将宿主机上的目录/home/hztext/dai/Rice_GWAS/my_gwas
挂载到容器内部的/work
目录。这意味着容器中的应用程序可以直接访问宿主机上的这个目录,并读写其中的文件。
pop-evol-gwas:latest
:指定要运行的Docker镜像。这里使用的是pop-evol-gwas
镜像的latest
标签版本。