Singularity 学习(二)

这一部分主要是看看能不能写点使用流程

Singularity 功能介绍

使用上是比较像docker的.

singularity #就可以查看具体功能描述

pull

● 调用云端的库,如docker/...
● 以库开头的 URI://,从容器库构建
● URI 以 docker://开头,从 Docker Hub 构建
● URI 以 shub://开头,从Singularity Hub构建

或许需要的镜像前,可进入两个库内搜索
● docker库:https://hub.docker.com/
● singulary的库: https://cloud.sylabs.io/library

  • 测试
#先使用singularity抓下环境。
singularity  pull emboss.sif docker://biocontainers/emboss:v6.6.0dfsg-7b1-deb_cv1
#进入emboss环境
singularity shell emboss.sif
#Singularity> transeq --help #查看一些emboss配置好的
#Singularity> exit #退出

e.g 无参转录组分析

singularity pull trinity.sif  docker://trinityrnaseq/trinityrnaseq:latest
singularity pull seqkit.sif docker://nanozoo/seqkit:latest
#因为原始数据对于windows本地跑太大了,分开小文件测试。
singularity run ~/software/seqkit.sif seqkit split2 -p 10 CK_1_3d_1.clean.fq -j 2 &
singularity run ~/software/seqkit.sif seqkit split2 -p 10 CK_1_3d_2.clean.fq -j 2 &

cp CK_1_3d_1.clean.fq.split/CK_1_3d_1.clean.part_010.fq . &
cp CK_1_3d_2.clean.fq.split/CK_1_3d_2.clean.part_010.fq . &

singularity run ~/software/trinity.sif Trinity --seqType fq \
--left CK_1_3d_1.clean.part_010.fq \
--right CK_1_3d_2.clean.part_010.fq \
--CPU 5 --max_memory 2G  --no_salmon --no_version_check  1>trinity.log 

结果如下:


image.png
trinity_out_dir.Trinity.fasta #trinity组装好的序列
trinity_out_dir/ #trinity运行的工作路径

e.g 个性化 (sandbox)

调用别人的镜像固然很方便/
但如果可以制作一个得心顺手的生信分析沙盒就更好了。

#拉下一个合适的镜像
singularity pull docker://centos:centos7.9.2009
singularity build --sandbox ./centos centos_centos7.9.2009.sif
  • 此时已经在路径出现了sandbox的文件夹,是可以可以进去查看一下。构建了了一个可以查看的环境文件夹。
  • 我们只需将需要的软件安装进sandbox,可以再度打包~
#使用exec 属于沙盒内部操作;可以用于安装
sudo singularity exec -w centos yum install vim
#也可以使用shell进入沙盒安装
singularity shell -w centos
yum install vim
exit
#退出sandbox后,在本机下载好iqtree安装包
#http://www.iqtree.org/#download
cp /mnt/f/下载/iqtree-1.6.12-Linux.tar.gz  centos/opt

#进入沙盒编译
singularity  shell -w ~/software/centos
tar -zxf iqtree-1.6.12-Linux.tar.gz
cd iqtree-1.6.12-Linux/bin
pwd
#/home/xialab007/software/centos/opt/iqtree-1.6.12-Linux/bin
#修改环境
# /home/xialab007/software/ 修改为安装的centos路径
vi /home/xialab007/software/centos/environment
#增加一行内容如下
export PATH=$PATH:/home/xialab007/software/centos/opt/iqtree-1.6.12-Linux/bin

#退出沙盒,测试能否使用安装好的iqtree
singularity run centos iqtree
  • 重新打包/封装回不可写的sif
singularity build newcentos.sif centos/
#测试,导出后依然能使用iqtree
singularity run newcentos.sif iqtree

将多个软件也如此编译进容器内,即可分发给其他有需要的好朋友。

e.g. 进阶可以将本地docker镜像转换程Singularity内镜像

如果在集群内,管理员已经配置好singularity。只要在本地将别人打包好的docker镜像转化程sif格式/
转移到集群使用。这样会非常方便。
具体流程,事实上我也有投稿过到“生信石头”的订阅号上。
所以可以直接指路:
https://mp.weixin.qq.com/s/8U6iYQwPHX9W00oZxjTbyg
进阶 | 本地「Docker」镜像转换为「Singularity」镜像,直接运行于任何服务器~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容