网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Singularity—生信流程搭建的幸运儿

时间:2023-05-22 14:46

人气:

作者:admin

标签: 流程  生信      Singularity 

导读:怎么样高效的搭建分析流程且能保证分析流程稳定运行的使用效果呢?目前主流的是conda和容器技术(container)。...

1

Singularity简介

怎么样高效的搭建分析流程且能保证分析流程稳定运行的使用效果呢?目前主流的是conda容器技术 (container)。

虽然 conda能解决大部分生信软件安装问题 ,但是 若软件安装多了 ,会出现兼容性问题以及 ”臃肿” 现象,为此,引入容器技术(container)来解决这些问题。

在容器技术中,docker和singularity常用的容器软件。但 docker不太适合 HPC 环境 。因为在调度管理器上容器无法施加资源限制、多用户(非 root 用户)使用时会出现权限问题、而且docker会存在一些不必要的资源开销。

为此,引进singularity容器来解决docker的一些 缺点 。首先,singularity可以兼容docker的镜像,同时构建出的镜像可以很容易进行拷贝和转移,且体积更小;此外singularity 假设用户在一个有root权限的系统上构建容器,在一个没有root权限的系统上运行容器,兼顾了数据的安全性和便捷性,更加符合实际的应用场景。

2

Singularity安装

方法1:conda安装( 最简便、无需root权限

conda create -n singularity singularity -y

方法2:自行编译

#1. 安装依赖
sudo apt-get update && sudo apt-get install -y \\
build-essential \\
uuid-dev \\
libgpgme-dev \\
squashfs-tools \\
libseccomp-dev \\
wget \\
pkg-config \\
git \\
cryptsetup-bin
#2.安装 GO 语言;下载地址:https://golang.org/dl/
cd
wget https://dl.google.com/go/go1.20.1.linux-amd64.tar.gz
tar -xzvf go1.20.1.linux-amd64.tar.gz
rm go1.20.1.linux-amd64.tar.gz
添加到环境变量
echo 'export PATH=~/go/bin:$PATH' >>~/.bashrc
#3. 下载 singularity;下载地址:https://github.com/hpcng/singularity/releasessudo
apt install singularity-container #不一定是最新版
#或
wget https://github.com/apptainer/singularity/releases/download/v3.8.7/singularity-3.8.7.tar.gz
$ tar -xzf singularity-3.8.7.tar.gz
cd singularity
#4. 安装 singularity
./mconfig
cd builddir
make
sudo make install
#最后记得添加到 PATH哦。

3

Singularity基础知识

1.Singularity的两种镜像格式

图片

2.两种镜像格式之间的转换

图片

3.其他常见命令

图片

4

Singularity实操

  1. 下载 images

Container Library

Docker Hub

#官方库下载
singularity pull --arch amd64 library://library/default/ubuntu:20.04
#Docker镜像转Singularity镜像
singularity pull docker://ubuntu:20.04
  1. 创建沙箱
singularity build --sandbox blast ubuntu_20.04.sif
  1. 进入容器

默认会自动挂载 **HOME, **PWD , /tmp , /proc , /sys , /dev 目录。

容器内用户完全一致,当需要root权限时加–fakeroot参数进入容器,且root只在容器内有效。

#交互式运行
singularity shell ubuntu_20.04.sif bash
#Singularity> echo 'hello world'
#Singularity>id
#直接运行
singularity exec ubuntu_20.04.sif echo 'hello world'
#修改容器
singularity shell --writable --fakeroot blast
#Singularity>id
apt update
cd /opt/
wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.13.0+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.13.0+-x64-linux.tar.gz
  1. 打包
singularity build blast.sif blast
  1. 运行程序
#通过 --bind 挂载文件夹
singularity shell --bind /home/test/test.fa:/mnt blast.sif
#直接运行程序
singularity exec blast.sif \\
makeblastdb -dbtype prot -in test.fasta -out test
singularity exec blast.sif \\
blastp -query test.fa -db test -out blast.xml -outfmt 6

5

总结

总的来说,现在存在着各种各样的容器技术,比如docker,podman,singularity等。每一个都有自己的优缺点使用范围 。比如docker****适合于web网页开发等、singularity****适合于在集群上挖掘大数据。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信