专栏首页优雅R快速上手使用Singularity进行生物信息分析

快速上手使用Singularity进行生物信息分析

生信分析流程往往需要消耗数以万计的电脑计算资源。另外,生信分析过程中会用到大量的分析程序以及脚本,还需要对运行环境进行配置与管理。这会导致分析的可重复性变低,导致流程的升级、管理等都会成为问题。

Docker是很适合解决上述的问题。但是生信分析集群,和一般的IT服务器又有很大区别,比如无root权限,分析任务需要进行资源管理(内存,CPU)。这些问题都让Docker技术在HPC环境的应用受限,正因为此我们需要Singularity的诞生。

虚拟机 vs 容器

首先,先和大家介绍一下基本概念。虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

容器可以看作是,一种轻量级的虚拟机。由于不包含完整的操作系统,因此容器只需极少的计算资源,并且安装快捷方便。这种效率让容器能够在丛集中进行部署,同时将复杂应用的单一组件压缩到单独的容器当中。将应用组件分别放置在不同的容器当中后,开发人员即可对个别组件进行更新,而无需重复运行整个应用。

Docker的缺点?

Docker是目前最热最成熟的容器,但是它却不是很适合生信分析的 HPC 环境。原因有几点:

  • 计算机资源的限制无法施加到容器中
  • 多用户(非 root 用户)使用时的权限问题
  • Docker 包含了不必要的资源开销

使用Singularity的优点

首先Singularity拥有容器所包含的大多数优点,例如启动迅速、资源开销小、轻松的迁移和扩展等等。除此之外,相较于Docker,还有一些独特的优点:

  • 容易对分析环境进行打包迁徙:Singularity所依赖的东西都在镜像文件中,不需要再单独打包 / 导入,直接拷贝走镜像即可。没有复杂的缓存机制,并且该镜像已经过压缩,只需占用非常少的磁盘空间。
  • 和现有系统无缝整合:系统用户权限、网络等均直接继承宿主机配置,并且无需进入某个镜像后再执行命令,可以直接在外部调用镜像内的指令,就像执行一个本地安装的指令一样。
  • 无需运行 daemon 进程:Singularity提供的完全是一个运行时的环境,在不使用时不需要单独的进程(资源限制和权限问题也得以解决),不占用任何资源。
  • Singularity还支持多种镜像和容器文件格式,甚至可以直接使用 Docker 提供的镜像,就像从 Docker Hub 去 pull 一个镜像一样简单。
  • Singularity可以轻易的现有的 HPC 系统整合,几乎无需任何额外的开发就能让现有的 HPC 变成一个轻量级的容器云。

安装Singularity

安装好相关的依赖软件

sudo apt-get install -y  build-essential uuid-dev libgpgme-dev squashfs-tools  libseccomp-dev  wget  pkg-config  git  cryptsetup-bi

如果你还没有安装go语言的话也需要进行下载安装,下载地址:https://golang.org/dl/

下载ingularity

wget https://github.com/hpcng/singularity/releases/download/v3.7.2/singularity-3.7.2.tar.gz
tar -xzf singularity-3.7.2.tar.gz
cd singularity

进行安装

./mconfig
cd builddir/
sudo make
sudo make install

安装好后,将其加入path中。

使用Singularity运行bwa比对

下载系统images

singularity pull --arch amd64 library://library/default/ubuntu:20.04

接着创建沙箱,给里面装软件,一般推荐手动安装:

singularity build --sandbox bwa ubuntu_20.04.sif

封装软件:

singularity build bwa.sif bwa

通过singularity运行软件:

singularity exec bwa.sif bwa

如果操作没有问题,bwa的帮助文档就会弹出来。

当然也可以直接通过下载好其他人封装好的镜像:

singularity pull docker:dceoy/bwa

小结

相对docker来说,singularity操作更加简便,兼容性高。以后会在HPC中生信分析中,变得原来越普遍好用。

参考资料:

Docker和Singularity双剑合璧构建生物信息分析流 http://tiramisutes.github.io/2019/08/29/docker.html

本文分享自微信公众号 - 优雅R(elegant-r),作者:lakeseafly

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • dyno使用教程--1个R包实现59种单细胞轨迹推断分析

    A comparison of single-cell trajectory inference methods[1](Saelens et al., 2019...

    生信技能树jimmy
  • 六轴机械手臂有哪些奇异点?

    六轴机械手臂由六组不同位置的马达驱动,每个马达都能提供绕一轴向的旋转运动,其位置可参照下图。从自由度(Degree of Freedom)的概念来看,六轴机械手...

    机器人网
  • 从零开始制作PyTorch的Singularity容器镜像

    在前面的博客中,我们大篇幅的使用到了Docker和Singularity这两种常见的容器化编程环境解决方案,使得我们的各个编程环境能够更好的隔离。如果要展开讲解...

    DechinPhy
  • Manjaro Linux安装singularity-container

    容器化技术在各种生产领域已经得到了广泛的应用,这得益于容器的轻量化(相比于虚拟机而言),安全性(隔离弱于虚拟机,但是权限控制得当的情况下也可以认为是安全隔离的)...

    DechinPhy
  • NVIDIA NGC 容器现在开放更多使用者、更多应用程序、更多平台使用

    NVIDIA在 SC18 发表的全新多节点容器、与 Singularity 容器的兼容性及 NGC-Ready 计划,让更多人能接触到资料科学、人工智能和 HP...

    GPUS Lady
  • 用华为MindSpore进行分布式训练

    分布式和并行计算,在计算机领域是非常重要的概念。对于一些行外人来说,总觉得这是一些很简单的工作,但是如果我们纵观计算机的硬件发展史,从CPU到GPU,再到TPU...

    DechinPhy
  • 【奇点临近】Superhuman:对抗超级人工智能的“新人类”?

    新智元原创 作者:克雷格 【新智元导读】很多人相信,人工智能将会增强人类,Superhuman成为新的“人类”。更激进的如马斯克等人认为,奇点来临之后,...

    新智元
  • 如何在Singularity中运行NVIDIA GPU云容器以配置HPC开发环境(中文字幕)

    在共享系统上安装HPC应用程序需要系统管理员为上百个应用程序构建环境模块,这是一项复杂、维护难度大、耗时长的工作。此外,将应用程序升级到最新版本需要仔细更新环境...

    GPUS Lady
  • 使用python进行北京二手房信息数据分析及可视化展示

    之前我们爬取了贝壳找房上的北京二手房信息,具体可以查看python爬取贝壳找房之北京二手房源信息,现在我们针对获取的数据进行分析及可视化的展示,本文代码和数据均...

    用户7886150
  • 奇点真的存在吗?面对强人工智能我们应该乐观还是悲观?

    大数据文摘
  • 学界 | Enlitic创始人Jeremy Howard专访:我眼中的深度学习与数据科学

    提起Jeremy Howard,人工智能和大数据领域的从业者们可谓无人不知无人不晓。 他是Enlitic、FastMail、Optimal Decisions ...

    AI科技评论
  • 【AlphaGo Zero之后,AI何时超越人类?】谷歌Kurzweil:2045

    【新智元导读】继AlphaGo Zero无师自通击败上一版本的AlphaGo之后,人们纷纷猜测AI何时超越人类智慧。谷歌工程负责人、未来学家Ray Kurzwe...

    新智元
  • 生物信息学命令行入门的十个简单规则

    随着测序技术的发展,基因组学变得越来越受欢迎,并且已经应用到农业医学环境保护等不同的领域。这使得许多具有生物学和遗传学背景的研究员,面临着大数据分析的挑战。在这...

    生信菜鸟团
  • 当智能体具备生命体征时,超级人工智能将给人类带来什么?

    大多数讨论都将人工智能的未来描述为像终结者那样的启示录或像Wall-E那样的乌托邦。

    新智元
  • 等你在2118:探索机器学习算法生命周期

    【导读】1月22日,统计学家Venkat Raman发布了一篇比较有意思的博文,作者探讨了到2118年,即未来一百年中机器学习中一些算法可能的兴衰存亡。具体分析...

    WZEARW
  • 未来大学52种闻所未闻的学位

    在此背景下,我们已经看到许多新的教育模式的出现。从可汗学院(Khan Academy)到奇点大学(Singularity University),从德雷普英雄学...

    华章科技
  • 未来进入我们的视野,为的是替换我们当下的生活-《奇点临近》读后感

    “雷·库兹韦尔是我所知道的预测人工智能未来最权威的人。他的这本耐人寻味的书预想了未来信息技术空前发展,促使人类超越自身的生物极限——以我们无法想象的方式超越我们...

    企鹅号小编
  • CES 2015:机器人产业投资战略分析

    为期半天的机器人论坛揭示了一个新趋势:消费机器人的投资机遇已经来临。 消费机器人的最佳时机 在举行消费机器人研讨会的Casanova602会议室座无虚席之前...

    机器人网
  • 习总书架上两本人工智能书:《终极算法》、《智能浪潮》,你读了吗?

    作者:弗朗西斯 【新智元导读】自2014年起,习大大每年都会在元旦前夕录制新年祝福视频,他办公室的背景书架上摆放的各类图书令人印象深刻,值得注意的是,跟据学习小...

    新智元

扫码关注云+社区

领取腾讯云代金券