#在docker hub搜索docker命令,例如为:
docker pull pegi3s/spades
#那么singularity则为:
singularity pull spades.sif docker://docker-0.unsee.tech/pegi3s/spades
#docker://docker-0.unsee.tech/固定不变,为docker镜像
#拉取docker镜像创建sandbox格式容器
# 创建容器时加入参数--fakeroot
singularity build --fakeroot --sandbox molspin docker://centos:7.6.1810
# 通过交互的方式进入容器镜像,修改容器镜像
# 加入参数--fakeroot
singularity shell --fakeroot -w molspin
# 安装依赖
yum install epel-release centos-release-scl -y
yum install devtoolset-7 armadillo-devel -y
source /opt/rh/devtoolset-7/enable
echo "source /opt/rh/devtoolset-7/enable" >> /environment
# 注册并下载MolSpin安装包, 解压后进入
unzip -d molspin molspin-v1.0.120819.zip
cd molspin && make
cp molspin /usr/local/bin/
# 在安装软件完后退出镜像
exit
# 生成sif文件
singularity build --fakeroot molspin.sif molspin/
# 运行镜像,其中example.msd为输入文件
singularity exec molspin.sif molspin -p 2 -a example.msd
更新singularity 里的python
1、进入容器
singularity shell OPERA-MS/ubuntu-18.04.sif
2、下载conda
wget <https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh>
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda
export PATH=$HOME/miniconda/bin:$PATH
3、创建conda环境
conda create -n py38 python=3.8 -y
4、更新命令
例如原始命令为:
singularity exec OPERA-MS/ubuntu-18.04.sif /home/liuli/liuli/new/liuli/meta/SPAdes-4.1.0-Linux/bin/spades.py \\
-o hybridSPAdes \\
--meta \\
-1 /home/liuli/liuli/new/liuli/meta/illumiona/L1EHK3003588-LH_meta1.R1.clean.fastq \\
-2 /home/liuli/liuli/new/liuli/meta/illumiona/L1EHK3003588-LH_meta1.R2.clean.fastq \\
--nanopore ./LH_meta1.ont.fq \\
-t 70 -m 900 \\
-k 21,31,41,61,81,101,121
则更改为:
singularity exec OPERA-MS/ubuntu-18.04.sif bash -c "
source ~/miniconda/bin/activate py38 && \\
/home/liuli/liuli/new/liuli/meta/SPAdes-4.1.0-Linux/bin/spades.py \\
-o hybridSPAdes \\
--meta \\
-1 /home/liuli/liuli/new/liuli/meta/illumiona/L1EHK3003588-LH_meta1.R1.clean.fastq \\
-2 /home/liuli/liuli/new/liuli/meta/illumiona/L1EHK3003588-LH_meta1.R2.clean.fastq \\
--nanopore ./LH_meta1.ont.fq \\
-t 70 -m 900 \\
-k 21,31,41,61,81,101,121
"
/