5.9 利用Apptainer安装生物软件
Apptainer是一种容器,之前名字是Singularity,现在改了名字,成为Linux基金会项目。不过之前的singularity部分成员没加入,继续维护singularity项目。
1 apptainer简介
现在各种容器技术已经很多了,比如docker,podman,singularity等。每一个都有优缺点,有一定的使用范围。 docker适合一些服务,比如web服务器等。但docker之前需要管理员权限,现在支持rootless面膜是。podman是redhat的容器技术,不需要像docker后台一直要有一个进程守护。但是podman需要redhat的系统原生支持,ubuntu需要较新版本才支持。另外podman目前有一个bug,如果用户主不在/home目录下,开启selinux会有问题。后面可能会修复。 官方网站:http://apptainer.org
2 为什么选择apptainer?
为什么选择apptainer或者singularity更适合配置生物软件,主要有以下几点:
权限问题,apptainer可以继承用户的权限,比如A用户使用的容器,只有A用户有权限进行操作;
apptainer方便迁移,拉取镜像直接放到自己目录下,而docker所有人的镜像都放在固定位置,虽然docker也可以打包拷贝走,但操作起来比较麻烦。
和现有系统无缝整合:系统用户权限、网络等均直接继承宿主机配置,直接就可以运行镜像文件中的命令。
不需运行 daemon守护进程:生物软件安装到一个虚拟机文件中,随时启动,不占用任何资源。资源限制和权限问题也得以解决。
绑定目录的问题,docker每次运行都要绑定目录到容器中,非常麻烦,而apptainer可以直接访问。
可以直接使用docker镜像文件。
apptainer可以直接使用bioconda进行安装,无需管理员配置。 8.可直接将整个apptainer文件迁移使用。
3 安装apptainer
apptainer可以使用系统工作yum或者apt等直接安装,也可以选择bioconda安装,推荐系统直接安装。如果是普通用户可以选择bioconda安装。
mamba install -y apptainer
4 使用apptainer安装软件
安装ubuntu镜像
#下载镜像
apptainer pull ubuntu.sif docker://ubuntu:latest
#创建沙盒
apptainer build --sandbox --fakeroot ubuntu ubuntu.sif
#进入沙盒
apptainer shell --writable --fakeroot ubuntu
#安装软件
apt update
apt install -y bwa
apt install -y bwa
apt install -y samtools
apt install -y bcftools
apt install -y ncbi-blast+
apt install -y bedtools
apt install -y seqtk
apt install -y minimap2
apt install -y bowtie2
打包软件
#打包软件
apptainer build --fakeroot bio.sif ubuntu
运行软件
./bio.sif bwa
./bio.sif samtools
利用Apptainer安装google deepvariant
apptainer pull docker://google/deepvariant