├── definitions ├── plink │ ├── PLINK-2.00a2.3LM-x86_64.eb │ ├── Singularity.PLINK-2.00-alpha2-x86_64-envmod-debian9 │ ├── Singularity.PLINK-2.00a2.3LM-x86_64-envmod-debian9 │ └── Singularity.PLINK-2.00a2.3LM-x86_64-lmod ├── steak │ ├── STEAK-20190912-foss-2019b-Python-2.7.16.eb │ └── Singularity.STEAK-20190912-foss-2019b-Python-2.7.16-envmod-centos7 ├── salmon │ ├── Salmon-1.2.1-gompi-2019b.eb │ ├── Singularity.Salmon-1.0.0-gompi-2019a-envmod-debian9 │ ├── Singularity.Salmon-1.2.1-gompi-2019b-envmod-debian9 │ ├── Singularity.Salmon-1.1.0-gompi-2019b-envmod-debian9 │ └── Singularity.Salmon-1.3.0-gompi-2020a-envmod-debian9 ├── gcc │ ├── Singularity.GCC-8.3.0-envmod-debian9 │ ├── Singularity.GCC-7.3.0-2.30-envmod-centos7 │ ├── Singularity.GCC-9.2.0-2.32-envmod-centos7 │ ├── Singularity.GCC-9.3.0-envmod-debian9 │ ├── Singularity.GCC-9.3.0-envmod-centos7 │ └── Singularity.GCC-9.3.0-envmod-debian10 ├── gcc-core │ └── Singularity.GCCcore-7.3.0-envmod-debian9 ├── bwa │ └── Singularity.BWA-0.7.17-foss-2018b-envmod-debian9 ├── gemma │ ├── Singularity.GEMMA-0.98.1-foss-2018b-envmod-debian9 │ └── Singularity.GEMMA-0.98.1-foss-2018b-envmod-centos7 ├── tabix │ └── Singularity.tabix-0.2.6-GCCcore-7.3.0-envmod-debian9 ├── R │ ├── Singularity.R-3.6.2-foss-2019b-envmod-debian9 │ ├── Singularity.R-3.6.3-foss-2020a-envmod-debian9 │ ├── Singularity.R-4.0.0-foss-2020a-envmod-debian9 │ ├── Singularity.R-3.6.0-foss-2018b-envmod-debian9 │ └── Singularity.R-3.6.2-foss-2020a-envmod-debian9 ├── foss │ ├── Singularity.foss-2018a-envmod-centos7 │ └── Singularity.foss-2020a-envmod-debian9 ├── fastqtl │ └── Singularity.FastQTL-2.184-foss-2018b-envmod-centos7 ├── bcftools │ ├── Singularity.BCFtools-1.3-foss-2016b-envmod-centos7 │ ├── Singularity.BCFtools-1.10.2-GCC-8.3.0-envmod-debian9 │ └── Singularity.BCFtools-1.10.2-GCC-8.3.0-envmod-debian10 ├── vcftools │ └── Singularity.VCFtools-0.1.15-foss-2018a-Perl-5.26.1-envmod-centos7 ├── ruby │ ├── Singularity.Ruby-2.7.1-GCCcore-8.3.0-envmod-debian9 │ └── Singularity.Ruby-2.7.1-GCCcore-8.3.0-envmod-debian10 ├── bowtie │ └── Singularity.Bowtie-1.2.3-foss-2018b-envmod-debian9 ├── meme │ └── Singularity.MEME-5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4-envmod-debian10 ├── samtools │ └── Singularity.SAMtools-1.10-GCC-9.3.0-envmod-debian10 ├── HTSeq │ └── Singularity.HTSeq-0.11.3-foss-2020b-centos-7-envmod ├── RSEM │ └── Singularity.RSEM-1.3.3-foss-2019b-centos-7-envmod └── mirtk │ └── Singularity.mirtk-2.0.0-foss-2020a-Python-3.8.2-envmod-centos7 ├── scripts ├── debian-template.tmpl ├── easybuild-install.tmpl ├── centos-template.tmpl ├── easybuild-run.tmpl ├── easybuild-template.tmpl ├── install.sh ├── container-build.sh └── singularity-definition.sh ├── LICENSE └── README.md /definitions/plink/PLINK-2.00a2.3LM-x86_64.eb: -------------------------------------------------------------------------------- 1 | easyblock = 'PackedBinary' 2 | 3 | name = 'PLINK' 4 | version = '2.00a2.3LM-x86_64' 5 | 6 | homepage = 'https://www.cog-genomics.org/plink/2.0/' 7 | description = 'Whole-genome association analysis toolset' 8 | 9 | toolchain = SYSTEM 10 | 11 | source_urls = ['https://s3.amazonaws.com/plink2-assets/alpha2'] 12 | sources = ['plink2_linux_x86_64.zip'] 13 | checksums = ['3fa20a2058df542e928b11d715cc314c01d7c5961525b55fd17a088e6caa9cc9'] 14 | 15 | sanity_check_paths = { 16 | 'files': ['plink2'], 17 | 'dirs': [], 18 | } 19 | 20 | moduleclass = 'bio' 21 | -------------------------------------------------------------------------------- /scripts/debian-template.tmpl: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: ${distro_version} 3 | MirrorURL: ${distro_url} 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python3 python3-setuptools ${mod} 9 | apt install -y python3-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget rsync cpio locales 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | apt install -y procps 19 | apt install -y man libdb-dev 20 | apt clean 21 | 22 | -------------------------------------------------------------------------------- /scripts/easybuild-install.tmpl: -------------------------------------------------------------------------------- 1 | # install EasyBuild using pip3 2 | python3 -m pip install -U pip 3 | python3 -m pip install wheel 4 | python3 -m pip install -U setuptools==58.5.3 5 | python3 -m pip install easybuild==${eb_version} 6 | python3 -m pip install rich 7 | 8 | # create 'easybuild' user (if missing) 9 | id easybuild || useradd easybuild 10 | 11 | # create /app software installation prefix + /scratch sandbox directory 12 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 13 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 14 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 15 | 16 | -------------------------------------------------------------------------------- /scripts/centos-template.tmpl: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: ${distro_version} 3 | MirrorURL: ${distro_url} 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python3 ${mod} 10 | yum install --quiet --assumeyes python3-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget rsync 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel openssl 20 | yum clean all 21 | 22 | -------------------------------------------------------------------------------- /scripts/easybuild-run.tmpl: -------------------------------------------------------------------------------- 1 | chown easybuild:easybuild /home/easybuild/eb-install.sh 2 | chmod a+x /home/easybuild/eb-install.sh 3 | 4 | su -l easybuild -c /home/easybuild/eb-install.sh 5 | 6 | # cleanup, everything in /scratch is assumed to be temporary 7 | rm -rf /scratch/* 8 | 9 | %runscript 10 | eval "$@" 11 | 12 | %environment 13 | # make sure that 'module' and 'ml' commands are defined 14 | ${src_cmd} ${src_path} 15 | # increase threshold time for Lmod to write cache in $HOME (which we don't want to do) 16 | ${lmod_cache} 17 | # purge any modules that may be loaded outside container 18 | ${module_clean1} 19 | ${module_clean2} 20 | # avoid picking up modules from outside of container 21 | module unuse $MODULEPATH 22 | # pick up modules installed in /app 23 | export MODULEPATH="/app/modules/all" 24 | # setting up the installation environment: 25 | USER=$(whoami) 26 | 27 | -------------------------------------------------------------------------------- /scripts/easybuild-template.tmpl: -------------------------------------------------------------------------------- 1 | # verbose commands, exit on first error 2 | set -ve 3 | set -o noclobber 4 | 5 | # We set this so if we need to open the container again, we got the environment set up correctly 6 | cat >> /home/easybuild/.bashrc << 'EOG' 7 | export EASYBUILD_PREFIX=/scratch 8 | export EASYBUILD_TMPDIR=/scratch/tmp 9 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 10 | export EASYBUILD_INSTALLPATH=/app 11 | export EASYBUILD_PARALLEL=4 12 | export EB_PYTHON=python3 13 | export MODULEPATH=/app/modules/all 14 | alias eb="eb --robot --download-timeout=1000${env_lang}" 15 | export PYTHONIOENCODING="utf-8" 16 | EOG 17 | 18 | # configure EasyBuild 19 | cat > /home/easybuild/eb-install.sh << 'EOD' 20 | #!/bin/bash 21 | shopt -s expand_aliases 22 | export EASYBUILD_PREFIX=/scratch 23 | export EASYBUILD_TMPDIR=/scratch/tmp 24 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 25 | export EASYBUILD_INSTALLPATH=/app 26 | export EASYBUILD_PARALLEL=4 27 | export EB_PYTHON=python3 28 | alias eb="eb --robot --download-timeout=1000${env_lang}" 29 | export PYTHONIOENCODING="utf-8" 30 | EOD 31 | 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Jörg Saßmannshausen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /definitions/steak/STEAK-20190912-foss-2019b-Python-2.7.16.eb: -------------------------------------------------------------------------------- 1 | # Contribution from the NIHR Biomedical Research Centre 2 | # Guy's and St Thomas' NHS Foundation Trust and King's College London 3 | # uploaded by J. Sassmannshausen 4 | 5 | easyblock = 'MakeCp' 6 | 7 | name = 'STEAK' 8 | version = '2019.09.12' 9 | versionsuffix = "-Python-%(pyver)s" 10 | 11 | homepage = 'https://omictools.com/steak-tool' 12 | description = """Detects integrations of any sort in high-throughput 13 | sequencing (HTS) data. STEAK was built for validating and discovering 14 | transposable element (TE) and retroviral integrations in a variety of 15 | HTS data. The software performs on both single-end (SE) and paired-end ( 16 | PE) libraries and on a variety of HTS sequencing strategies. It can 17 | be applied to a broad range of research interests and clinical uses 18 | such as population genetic studies and detecting polymorphic integrations.""" 19 | 20 | toolchain = {'name': 'foss', 'version': '2019b'} 21 | 22 | source_urls = ['https://github.com/applevir/STEAK/archive/'] 23 | sources = [ 24 | {'download_filename': '43f079da8bbc37a34efd7b3a0a6955a13f6d4137.tar.gz', 25 | 'filename': 'steak-20190912.tar.gz'} 26 | ] 27 | checksums = ['f200865e2588c2a037527ad4cf8d2b6539217d7e9bf8f515b99e4288eb682b37'] 28 | 29 | dependencies = [ 30 | ('Boost', '1.71.0'), 31 | ('Python', '2.7.16'), 32 | ] 33 | 34 | files_to_copy = [(['steak'], 'bin'), "README.md", "GPLv3.txt"] 35 | 36 | sanity_check_paths = { 37 | 'files': ['bin/steak'], 38 | 'dirs': [], 39 | } 40 | 41 | moduleclass = 'bio' 42 | -------------------------------------------------------------------------------- /definitions/salmon/Salmon-1.2.1-gompi-2019b.eb: -------------------------------------------------------------------------------- 1 | ## 2 | # This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia 3 | # Homepage: https://staff.flinders.edu.au/research/deep-thought 4 | # 5 | # Authors:: Robert Qiao 6 | # License:: GLPv2 7 | # 8 | # Notes:: 9 | ## 10 | # Contribution from the NIHR Biomedical Research Centre 11 | # Guy's and St Thomas' NHS Foundation Trust and King's College London 12 | # uploaded by J. Sassmannshausen 13 | 14 | easyblock = 'CMakeMake' 15 | 16 | name = 'Salmon' 17 | version = '1.2.1' 18 | 19 | homepage = 'https://github.com/COMBINE-lab/salmon' 20 | description = """Salmon is a wicked-fast program to produce a highly-accurate, 21 | transcript-level quantification estimates from RNA-seq data.""" 22 | 23 | toolchain = {'name': 'gompi', 'version': '2019b'} 24 | toolchainopts = {'pic': True, 'openmp': True} 25 | 26 | github_account = 'COMBINE-lab' 27 | source_urls = [GITHUB_LOWER_SOURCE] 28 | sources = ['v%(version)s.tar.gz'] 29 | checksums = ['10a58a22cb5b3924df3bf78be9cb4b83dce4f6a61e4c6a6e37f3a56ab8ac166f'] 30 | 31 | builddependencies = [ 32 | ('CMake', '3.15.3'), 33 | ('pkg-config', '0.29.2'), 34 | ('jemalloc', '5.2.1'), 35 | ] 36 | 37 | dependencies = [ 38 | ('Boost', '1.71.0'), 39 | ('tbb', '2019_U9'), 40 | ] 41 | 42 | configopts = '-DJEMALLOC_ROOT=$EBROOTJEMALLOC' 43 | 44 | # need to unset the $LD_PRELOAD set be jemalloc to avoid hanging 'make test' 45 | # since jemalloc is statically linked in Salmon (and hence only a build dep), 46 | # this only affects the tests 47 | pretestopts = "unset LD_PRELOAD && " 48 | runtest = 'test' 49 | 50 | sanity_check_paths = { 51 | 'files': ['bin/%(namelower)s'] + ['lib/lib%s.a' % x for x in ['graphdump', 'ntcard', 'salmon_core', 'twopaco']], 52 | 'dirs': [], 53 | } 54 | 55 | sanity_check_commands = ["salmon --help"] 56 | 57 | moduleclass = 'bio' 58 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-8.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget vim 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | echo "eb GCC-8.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 47 | 48 | chmod a+x /home/easybuild/eb-install.sh 49 | 50 | su -l easybuild -c /home/easybuild/eb-install.sh 51 | 52 | # cleanup, everything in /scratch is assumed to be temporary 53 | rm -rf /scratch/* 54 | 55 | %runscript 56 | eval "$@" 57 | 58 | %environment 59 | # make sure that 'module' is defined 60 | . /etc/profile 61 | # purge any modules that may be loaded outside container 62 | unset LOADEDMODULES 63 | unset _LMFILES_ 64 | # avoid picking up modules from outside of container 65 | module unuse $MODULEPATH 66 | # pick up modules installed in /app 67 | module use /app/modules/all 68 | # load module(s) corresponding to installed software 69 | module load GCC/8.3.0 70 | 71 | %labels 72 | GCC-8.3.0 73 | -------------------------------------------------------------------------------- /definitions/gcc-core/Singularity.GCCcore-7.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip vim 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | echo "eb GCCcore-7.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 47 | 48 | chmod a+x /home/easybuild/eb-install.sh 49 | 50 | su -l easybuild -c /home/easybuild/eb-install.sh 51 | 52 | # cleanup, everything in /scratch is assumed to be temporary 53 | rm -rf /scratch/* 54 | 55 | %runscript 56 | eval "$@" 57 | 58 | %environment 59 | # make sure that 'module' is defined 60 | . /etc/profile 61 | # purge any modules that may be loaded outside container 62 | unset LOADEDMODULES 63 | unset _LMFILES_ 64 | # avoid picking up modules from outside of container 65 | module unuse $MODULEPATH 66 | # pick up modules installed in /app 67 | module use /app/modules/all 68 | # load module(s) corresponding to installed software 69 | module load GCCcore/7.3.0 70 | 71 | %labels 72 | GCCcore-7.3.0 73 | -------------------------------------------------------------------------------- /definitions/bwa/Singularity.BWA-0.7.17-foss-2018b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | echo "eb BWA-0.7.17-foss-2018b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 47 | 48 | chmod a+x /home/easybuild/eb-install.sh 49 | 50 | su -l easybuild -c /home/easybuild/eb-install.sh 51 | 52 | # cleanup, everything in /scratch is assumed to be temporary 53 | rm -rf /scratch/* 54 | 55 | %runscript 56 | eval "$@" 57 | 58 | %environment 59 | # make sure that 'module' is defined 60 | . /etc/profile 61 | # purge any modules that may be loaded outside container 62 | unset LOADEDMODULES 63 | unset _LMFILES_ 64 | # avoid picking up modules from outside of container 65 | module unuse $MODULEPATH 66 | # pick up modules installed in /app 67 | module use /app/modules/all 68 | # load module(s) corresponding to installed software 69 | module load BWA/0.7.17-foss-2018b 70 | 71 | %labels 72 | BWA-0.7.17-foss-2018b 73 | -------------------------------------------------------------------------------- /definitions/gemma/Singularity.GEMMA-0.98.1-foss-2018b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | echo "eb GEMMA-0.98.1-foss-2018b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 47 | 48 | chmod a+x /home/easybuild/eb-install.sh 49 | 50 | su -l easybuild -c /home/easybuild/eb-install.sh 51 | 52 | # cleanup, everything in /scratch is assumed to be temporary 53 | rm -rf /scratch/* 54 | 55 | %runscript 56 | eval "$@" 57 | 58 | %environment 59 | # make sure that 'module' is defined 60 | . /etc/profile 61 | # purge any modules that may be loaded outside container 62 | unset LOADEDMODULES 63 | unset _LMFILES_ 64 | # avoid picking up modules from outside of container 65 | module unuse $MODULEPATH 66 | # pick up modules installed in /app 67 | module use /app/modules/all 68 | # load module(s) corresponding to installed software 69 | module load GEMMA/0.98.1-foss-2018b 70 | 71 | %labels 72 | Author J. Sassmannshausen 73 | GEMMA-0.98.1-foss-2018b 74 | -------------------------------------------------------------------------------- /definitions/tabix/Singularity.tabix-0.2.6-GCCcore-7.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | echo "eb tabix-0.2.6-GCCcore-7.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 47 | 48 | chmod a+x /home/easybuild/eb-install.sh 49 | 50 | su -l easybuild -c /home/easybuild/eb-install.sh 51 | 52 | # cleanup, everything in /scratch is assumed to be temporary 53 | rm -rf /scratch/* 54 | 55 | %runscript 56 | eval "$@" 57 | 58 | %environment 59 | # make sure that 'module' is defined 60 | . /etc/profile 61 | # purge any modules that may be loaded outside container 62 | unset LOADEDMODULES 63 | unset _LMFILES_ 64 | # avoid picking up modules from outside of container 65 | module unuse $MODULEPATH 66 | # pick up modules installed in /app 67 | module use /app/modules/all 68 | # load module(s) corresponding to installed software 69 | module load tabix/0.2.6-GCCcore-7.3.0 70 | 71 | %labels 72 | Author J. Sassmannshausen 73 | tabix-0.2.6-GCCcore-7.3.0 74 | -------------------------------------------------------------------------------- /definitions/plink/Singularity.PLINK-2.00-alpha2-x86_64-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | EOD 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb PLINK-2.00-alpha2-x86_64.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | cat >> /home/easybuild/eb-install.sh << 'EOD' 50 | 51 | chmod a+x /home/easybuild/eb-install.sh 52 | 53 | su -l easybuild -c /home/easybuild/eb-install.sh 54 | 55 | # cleanup, everything in /scratch is assumed to be temporary 56 | rm -rf /scratch/* 57 | 58 | %runscript 59 | eval "$@" 60 | 61 | %environment 62 | # make sure that 'module' is defined 63 | . /etc/profile 64 | # purge any modules that may be loaded outside container 65 | unset LOADEDMODULES 66 | unset _LMFILES_ 67 | # avoid picking up modules from outside of container 68 | module unuse $MODULEPATH 69 | # pick up modules installed in /app 70 | module use /app/modules/all 71 | # load module(s) corresponding to installed software 72 | module load PLINK/2.00-alpha2-x86_64 73 | 74 | %labels 75 | Author J. Sassmannshausen 76 | PLINK-2.00-alpha2-x86_64 77 | -------------------------------------------------------------------------------- /definitions/R/Singularity.R-3.6.2-foss-2019b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | # we added this for some R plugins 19 | apt install -y libgdal-dev 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb R-3.6.2-foss-2019b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | . /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load R/3.6.2-foss-2019b 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | R-3.6.2-foss-2019b 76 | -------------------------------------------------------------------------------- /definitions/R/Singularity.R-3.6.3-foss-2020a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | # we added this for some R plugins 19 | apt install -y libgdal-dev 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb R-3.6.3-foss-2020a.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | . /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load R/3.6.3-foss-2020a 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | R-3.6.3-foss-2020a 76 | -------------------------------------------------------------------------------- /definitions/R/Singularity.R-4.0.0-foss-2020a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | # we added this for some R plugins 19 | apt install -y libgdal-dev 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb R-4.0.0-foss-2020a.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | . /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load R/4.0.0-foss-2020a 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | R-4.0.0-foss-2020a 76 | -------------------------------------------------------------------------------- /definitions/foss/Singularity.foss-2018a-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb foss-2018a.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load foss/2018a 72 | 73 | %labels 74 | foss-2018a 75 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-7.3.0-2.30-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb GCC-7.3.0-2.30.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load GCC/7.3.0-2.30 72 | 73 | %labels 74 | GCC-7.3.0-2.30 75 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-9.2.0-2.32-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb GCC-9.2.0-2.32.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load GCC/9.2.0-2.32 72 | 73 | %labels 74 | GCC-9.2.0-2.32 75 | -------------------------------------------------------------------------------- /definitions/gemma/Singularity.GEMMA-0.98.1-foss-2018b-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb GEMMA-0.98.1-foss-2018b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load GEMMA/0.98.1-foss-2018b 72 | 73 | %labels 74 | GEMMA-0.98.1-foss-2018b 75 | -------------------------------------------------------------------------------- /definitions/fastqtl/Singularity.FastQTL-2.184-foss-2018b-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb FastQTL-2.184-foss-2018b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load FastQTL/2.184-foss-2018b 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | FastQTL-2.184-foss-2018b 76 | -------------------------------------------------------------------------------- /definitions/bcftools/Singularity.BCFtools-1.3-foss-2016b-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb BCFtools-1.3-foss-2016a.eb --robot --try-toolchain=foss,2016b --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load BCFtools/1.3-foss-2016b 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | BCFtools-1.3-foss-2016b 76 | -------------------------------------------------------------------------------- /definitions/vcftools/Singularity.VCFtools-0.1.15-foss-2018a-Perl-5.26.1-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # configure EasyBuild 40 | cat > /home/easybuild/eb-install.sh << 'EOD' 41 | #!/bin/bash 42 | export EASYBUILD_PREFIX=/scratch 43 | export EASYBUILD_TMPDIR=/scratch/tmp 44 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 45 | export EASYBUILD_INSTALLPATH=/app 46 | export EASYBUILD_PARALLEL=4 47 | EOD 48 | echo "eb VCFtools-0.1.15-foss-2018a-Perl-5.26.1.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 49 | 50 | chmod a+x /home/easybuild/eb-install.sh 51 | 52 | su -l easybuild -c /home/easybuild/eb-install.sh 53 | 54 | # cleanup, everything in /scratch is assumed to be temporary 55 | rm -rf /scratch/* 56 | 57 | %runscript 58 | eval "$@" 59 | 60 | %environment 61 | # make sure that 'module' is defined 62 | source /etc/profile 63 | # purge any modules that may be loaded outside container 64 | unset LOADEDMODULES 65 | unset _LMFILES_ 66 | # avoid picking up modules from outside of container 67 | module unuse $MODULEPATH 68 | # pick up modules installed in /app 69 | module use /app/modules/all 70 | # load module(s) corresponding to installed software 71 | module load VCFtools/0.1.15-foss-2018a-Perl-5.26.1 72 | 73 | %labels 74 | Author J. Sassmannshausen 75 | VCFtools-0.1.15-foss-2018a-Perl-5.26.1 76 | -------------------------------------------------------------------------------- /definitions/salmon/Singularity.Salmon-1.0.0-gompi-2019a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=12 45 | mkdir -p /scratch/sources/g/GCCcore 46 | wget -O /scratch/sources/g/GCCcore/isl-0.20.tar.bz2 http://isl.gforge.inria.fr/isl-0.20.tar.bz2 47 | mkdir -p /scratch/sources/b/Boost 48 | wget -O /scratch/sources/b/Boost/boost_1_70_0.tar.gz https://download.sourceforge.net/boost/boost_1_70_0.tar.gz 49 | eb binutils-2.31.1-GCCcore-8.2.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl 50 | eb tbb-2019_U4-GCCcore-8.2.0.eb --ignore-checksums --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl 51 | EOD 52 | echo "eb Salmon-1.0.0-gompi-2019a.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 53 | 54 | chmod a+x /home/easybuild/eb-install.sh 55 | 56 | su -l easybuild -c /home/easybuild/eb-install.sh 57 | 58 | # cleanup, everything in /scratch is assumed to be temporary 59 | rm -rf /scratch/* 60 | 61 | %runscript 62 | eval "$@" 63 | 64 | %environment 65 | # make sure that 'module' is defined 66 | . /etc/profile 67 | # purge any modules that may be loaded outside container 68 | unset LOADEDMODULES 69 | unset _LMFILES_ 70 | # avoid picking up modules from outside of container 71 | module unuse $MODULEPATH 72 | # pick up modules installed in /app 73 | module use /app/modules/all 74 | # load module(s) corresponding to installed software 75 | module load Salmon/1.0.0-gompi-2019a 76 | 77 | %labels 78 | Author J. Sassmannshausen 79 | Salmon-1.0.0-gompi-2019a 80 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-9.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd -s /bin/bash -m easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # We set this so if we need to open the container again, we got the environment set up correctly 38 | cat >> /home/easybuild/.bashrc << 'EOG' 39 | export EASYBUILD_PREFIX=/scratch 40 | export EASYBUILD_TMPDIR=/scratch/tmp 41 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 42 | export EASYBUILD_INSTALLPATH=/app 43 | export EASYBUILD_PARALLEL=4 44 | export MODULEPATH=/app/modules/all 45 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 46 | EOG 47 | 48 | # configure EasyBuild 49 | cat > /home/easybuild/eb-install.sh << 'EOD' 50 | #!/bin/bash 51 | shopt -s expand_aliases 52 | export EASYBUILD_PREFIX=/scratch 53 | export EASYBUILD_TMPDIR=/scratch/tmp 54 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 55 | export EASYBUILD_INSTALLPATH=/app 56 | export EASYBUILD_PARALLEL=4 57 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 58 | EOD 59 | echo "eb --fetch GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 60 | echo "eb GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 61 | 62 | chmod a+x /home/easybuild/eb-install.sh 63 | 64 | su -l easybuild -c /home/easybuild/eb-install.sh 65 | 66 | # cleanup, everything in /scratch is assumed to be temporary 67 | rm -rf /scratch/* 68 | 69 | %runscript 70 | eval "$@" 71 | 72 | %environment 73 | # make sure that 'module' is defined 74 | . /etc/profile 75 | # purge any modules that may be loaded outside container 76 | unset LOADEDMODULES 77 | unset _LMFILES_ 78 | # avoid picking up modules from outside of container 79 | module unuse $MODULEPATH 80 | # pick up modules installed in /app 81 | module use /app/modules/all 82 | # load module(s) corresponding to installed software 83 | module load GCC/9.3.0 84 | 85 | %labels 86 | Author J. Sassmannshausen 87 | GCC-9.3.0 88 | -------------------------------------------------------------------------------- /definitions/bcftools/Singularity.BCFtools-1.10.2-GCC-8.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://ftp.tu-graz.ac.at/mirror/debian/ 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | # We set this so if we need to open the container again, we got the environment set up correctly 47 | 48 | echo "export EASYBUILD_PREFIX=/scratch" >> /home/easybuild/.bashrc 49 | echo "export EASYBUILD_TMPDIR=/scratch/tmp" >> /home/easybuild/.bashrc 50 | echo "export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources" >> /home/easybuild/.bashrc 51 | echo "export EASYBUILD_INSTALLPATH=/app2" >> /home/easybuild/.bashrc 52 | echo "export EASYBUILD_PARALLEL=42" >> /home/easybuild/.bashrc 53 | echo "alias eb=eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/.bashrc 54 | echo "eb BCFtools-1.10.2-GCC-8.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 55 | 56 | chmod a+x /home/easybuild/eb-install.sh 57 | 58 | su -l easybuild -c /home/easybuild/eb-install.sh 59 | 60 | # cleanup, everything in /scratch is assumed to be temporary 61 | rm -rf /scratch/* 62 | 63 | %runscript 64 | eval "$@" 65 | 66 | %environment 67 | # make sure that 'module' is defined 68 | . /etc/profile 69 | # purge any modules that may be loaded outside container 70 | unset LOADEDMODULES 71 | unset _LMFILES_ 72 | # avoid picking up modules from outside of container 73 | module unuse $MODULEPATH 74 | # pick up modules installed in /app 75 | module use /app/modules/all 76 | # load module(s) corresponding to installed software 77 | module load BCFtools/1.10.2-GCC-8.3.0 78 | 79 | %labels 80 | Author J. Sassmannshausen 81 | BCFtools-1.10.2-GCC-8.3.0 82 | -------------------------------------------------------------------------------- /definitions/foss/Singularity.foss-2020a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd -s /bin/bash -m easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # We set this so if we need to open the container again, we got the environment set up correctly 38 | cat >> /home/easybuild/.bashrc << 'EOG' 39 | export EASYBUILD_PREFIX=/scratch 40 | export EASYBUILD_TMPDIR=/scratch/tmp 41 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 42 | export EASYBUILD_INSTALLPATH=/app 43 | export EASYBUILD_PARALLEL=4 44 | export MODULEPATH=/app/modules/all 45 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 46 | EOG 47 | 48 | # configure EasyBuild 49 | cat > /home/easybuild/eb-install.sh << 'EOD' 50 | #!/bin/bash 51 | shopt -s expand_aliases 52 | export EASYBUILD_PREFIX=/scratch 53 | export EASYBUILD_TMPDIR=/scratch/tmp 54 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 55 | export EASYBUILD_INSTALLPATH=/app 56 | export EASYBUILD_PARALLEL=4 57 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 58 | EOD 59 | echo "eb --fetch foss-2020a.eb" >> /home/easybuild/eb-install.sh 60 | echo "eb foss-2020a.eb" >> /home/easybuild/eb-install.sh 61 | 62 | chmod a+x /home/easybuild/eb-install.sh 63 | 64 | su -l easybuild -c /home/easybuild/eb-install.sh 65 | 66 | # cleanup, everything in /scratch is assumed to be temporary 67 | rm -rf /scratch/* 68 | 69 | %runscript 70 | eval "$@" 71 | 72 | %environment 73 | # make sure that 'module' is defined 74 | . /etc/profile 75 | # purge any modules that may be loaded outside container 76 | unset LOADEDMODULES 77 | unset _LMFILES_ 78 | # avoid picking up modules from outside of container 79 | module unuse $MODULEPATH 80 | # pick up modules installed in /app 81 | module use /app/modules/all 82 | # load module(s) corresponding to installed software 83 | module load foss/2020a 84 | 85 | %labels 86 | Author J. Sassmannshausen 87 | foss-2020a 88 | -------------------------------------------------------------------------------- /definitions/plink/Singularity.PLINK-2.00a2.3LM-x86_64-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | cat > /home/easybuild/PLINK-2.00a2.3LM-x86_64.eb << EOD 38 | easyblock = 'PackedBinary' 39 | 40 | name = 'PLINK' 41 | version = '2.00a2.3LM-x86_64' 42 | 43 | homepage = 'https://www.cog-genomics.org/plink/2.0/' 44 | description = 'Whole-genome association analysis toolset' 45 | 46 | toolchain = SYSTEM 47 | 48 | source_urls = ['https://s3.amazonaws.com/plink2-assets/alpha2'] 49 | sources = ['plink2_linux_x86_64.zip'] 50 | checksums = ['3fa20a2058df542e928b11d715cc314c01d7c5961525b55fd17a088e6caa9cc9'] 51 | 52 | sanity_check_paths = { 53 | 'files': ['plink2'], 54 | 'dirs': [], 55 | } 56 | 57 | moduleclass = 'bio' 58 | EOD 59 | # configure EasyBuild 60 | cat > /home/easybuild/eb-install.sh << 'EOD' 61 | #!/bin/bash 62 | export EASYBUILD_PREFIX=/scratch 63 | export EASYBUILD_TMPDIR=/scratch/tmp 64 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 65 | export EASYBUILD_INSTALLPATH=/app 66 | export EASYBUILD_PARALLEL=4 67 | EOD 68 | echo "eb /home/easybuild/PLINK-2.00a2.3LM-x86_64.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 69 | 70 | chmod a+x /home/easybuild/eb-install.sh 71 | 72 | su -l easybuild -c /home/easybuild/eb-install.sh 73 | 74 | # cleanup, everything in /scratch is assumed to be temporary 75 | rm -rf /scratch/* 76 | 77 | %runscript 78 | eval "$@" 79 | 80 | %environment 81 | # make sure that 'module' is defined 82 | . /etc/profile 83 | # purge any modules that may be loaded outside container 84 | unset LOADEDMODULES 85 | unset _LMFILES_ 86 | # avoid picking up modules from outside of container 87 | module unuse $MODULEPATH 88 | # pick up modules installed in /app 89 | module use /app/modules/all 90 | # load module(s) corresponding to installed software 91 | module load PLINK/2.00a2.3LM-x86_64 92 | 93 | %labels 94 | Author J. Sassmannshausen 95 | PLINK-2.00a2.3LM-x86_64 96 | -------------------------------------------------------------------------------- /definitions/R/Singularity.R-3.6.0-foss-2018b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd -s /bin/bash -m easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # We set this so if we need to open the container again, we got the environment set up correctly 38 | cat >> /home/easybuild/.bashrc << 'EOG' 39 | export EASYBUILD_PREFIX=/scratch 40 | export EASYBUILD_TMPDIR=/scratch/tmp 41 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 42 | export EASYBUILD_INSTALLPATH=/app 43 | export EASYBUILD_PARALLEL=4 44 | export MODULEPATH=/app/modules/all 45 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 46 | EOG 47 | 48 | # configure EasyBuild 49 | cat > /home/easybuild/eb-install.sh << 'EOD' 50 | #!/bin/bash 51 | shopt -s expand_aliases 52 | export EASYBUILD_PREFIX=/scratch 53 | export EASYBUILD_TMPDIR=/scratch/tmp 54 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 55 | export EASYBUILD_INSTALLPATH=/app 56 | export EASYBUILD_PARALLEL=4 57 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 58 | EOD 59 | echo "eb --fetch R-3.6.0-foss-2018b.eb" >> /home/easybuild/eb-install.sh 60 | echo "eb R-3.6.0-foss-2018b.eb" >> /home/easybuild/eb-install.sh 61 | 62 | chmod a+x /home/easybuild/eb-install.sh 63 | 64 | su -l easybuild -c /home/easybuild/eb-install.sh 65 | 66 | # cleanup, everything in /scratch is assumed to be temporary 67 | rm -rf /scratch/* 68 | 69 | %runscript 70 | eval "$@" 71 | 72 | %environment 73 | # make sure that 'module' is defined 74 | . /etc/profile 75 | # purge any modules that may be loaded outside container 76 | unset LOADEDMODULES 77 | unset _LMFILES_ 78 | # avoid picking up modules from outside of container 79 | module unuse $MODULEPATH 80 | # pick up modules installed in /app 81 | module use /app/modules/all 82 | # load module(s) corresponding to installed software 83 | module load R/3.6.0-foss-2018b 84 | 85 | %labels 86 | Author J. Sassmannshausen 87 | R-3.6.0-foss-2018b 88 | -------------------------------------------------------------------------------- /definitions/ruby/Singularity.Ruby-2.7.1-GCCcore-8.3.0-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd -s /bin/bash -m easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # We set this so if we need to open the container again, we got the environment set up correctly 38 | cat >> /home/easybuild/.bashrc << 'EOG' 39 | export EASYBUILD_PREFIX=/scratch 40 | export EASYBUILD_TMPDIR=/scratch/tmp 41 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 42 | export EASYBUILD_INSTALLPATH=/app 43 | export EASYBUILD_PARALLEL=4 44 | export MODULEPATH=/app/modules/all 45 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 46 | EOG 47 | 48 | # configure EasyBuild 49 | cat > /home/easybuild/eb-install.sh << 'EOD' 50 | #!/bin/bash 51 | shopt -s expand_aliases 52 | export EASYBUILD_PREFIX=/scratch 53 | export EASYBUILD_TMPDIR=/scratch/tmp 54 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 55 | export EASYBUILD_INSTALLPATH=/app 56 | export EASYBUILD_PARALLEL=4 57 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 58 | EOD 59 | echo "eb --fetch Ruby-2.7.1-GCCcore-8.3.0.eb" >> /home/easybuild/eb-install.sh 60 | echo "eb Ruby-2.7.1-GCCcore-8.3.0.eb" >> /home/easybuild/eb-install.sh 61 | 62 | chmod a+x /home/easybuild/eb-install.sh 63 | 64 | su -l easybuild -c /home/easybuild/eb-install.sh 65 | 66 | # cleanup, everything in /scratch is assumed to be temporary 67 | rm -rf /scratch/* 68 | 69 | %runscript 70 | eval "$@" 71 | 72 | %environment 73 | # make sure that 'module' is defined 74 | . /etc/profile 75 | # purge any modules that may be loaded outside container 76 | unset LOADEDMODULES 77 | unset _LMFILES_ 78 | # avoid picking up modules from outside of container 79 | module unuse $MODULEPATH 80 | # pick up modules installed in /app 81 | module use /app/modules/all 82 | # load module(s) corresponding to installed software 83 | module load Ruby/2.7.1-GCCcore-8.3.0 84 | 85 | %labels 86 | Author J. Sassmannshausen 87 | Ruby-2.7.1-GCCcore-8.3.0 88 | -------------------------------------------------------------------------------- /definitions/R/Singularity.R-3.6.2-foss-2020a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | # we added this for some R plugins 19 | apt install -y libgdal-dev 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd -s /bin/bash -m easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # We set this so if we need to open the container again, we got the environment set up correctly 40 | cat >> /home/easybuild/.bashrc << 'EOG' 41 | export EASYBUILD_PREFIX=/scratch 42 | export EASYBUILD_TMPDIR=/scratch/tmp 43 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 44 | export EASYBUILD_INSTALLPATH=/app 45 | export EASYBUILD_PARALLEL=4 46 | export MODULEPATH=/app/modules/all 47 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 48 | EOG 49 | 50 | # configure EasyBuild 51 | cat > /home/easybuild/eb-install.sh << 'EOD' 52 | #!/bin/bash 53 | shopt -s expand_aliases 54 | export EASYBUILD_PREFIX=/scratch 55 | export EASYBUILD_TMPDIR=/scratch/tmp 56 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 57 | export EASYBUILD_INSTALLPATH=/app 58 | export EASYBUILD_PARALLEL=4 59 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 60 | EOD 61 | echo "eb --fetch R-3.6.2-foss-2020a.eb" >> /home/easybuild/eb-install.sh 62 | echo "eb R-3.6.2-foss-2020a.eb" >> /home/easybuild/eb-install.sh 63 | 64 | chmod a+x /home/easybuild/eb-install.sh 65 | sleep 300 66 | su -l easybuild -c /home/easybuild/eb-install.sh 67 | 68 | # cleanup, everything in /scratch is assumed to be temporary 69 | rm -rf /scratch/* 70 | 71 | %runscript 72 | eval "$@" 73 | 74 | %environment 75 | # make sure that 'module' is defined 76 | . /etc/profile 77 | # purge any modules that may be loaded outside container 78 | unset LOADEDMODULES 79 | unset _LMFILES_ 80 | # avoid picking up modules from outside of container 81 | module unuse $MODULEPATH 82 | # pick up modules installed in /app 83 | module use /app/modules/all 84 | # load module(s) corresponding to installed software 85 | module load R/3.6.2-foss-2020a 86 | 87 | %labels 88 | Author J. Sassmannshausen 89 | R-3.6.2-foss-2020a 90 | -------------------------------------------------------------------------------- /definitions/bcftools/Singularity.BCFtools-1.10.2-GCC-8.3.0-envmod-debian10: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: buster 3 | MirrorURL: http://ftp.tu-graz.ac.at/mirror/debian/ 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | # configure EasyBuild 38 | cat > /home/easybuild/eb-install.sh << 'EOD' 39 | #!/bin/bash 40 | export EASYBUILD_PREFIX=/scratch 41 | export EASYBUILD_TMPDIR=/scratch/tmp 42 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 43 | export EASYBUILD_INSTALLPATH=/app 44 | export EASYBUILD_PARALLEL=4 45 | EOD 46 | # We set this so if we need to open the container again, we got the environment set up correctly 47 | 48 | echo "export EASYBUILD_PREFIX=/scratch" >> /home/easybuild/.bashrc 49 | echo "export EASYBUILD_TMPDIR=/scratch/tmp" >> /home/easybuild/.bashrc 50 | echo "export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources" >> /home/easybuild/.bashrc 51 | echo "export EASYBUILD_INSTALLPATH=/app2" >> /home/easybuild/.bashrc 52 | echo "export EASYBUILD_PARALLEL=42" >> /home/easybuild/.bashrc 53 | echo "alias eb=eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/.bashrc 54 | echo "eb BCFtools-1.10.2-GCC-8.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 55 | 56 | chmod a+x /home/easybuild/eb-install.sh 57 | 58 | su -l easybuild -c /home/easybuild/eb-install.sh 59 | 60 | # cleanup, everything in /scratch is assumed to be temporary 61 | rm -rf /scratch/* 62 | 63 | %runscript 64 | eval "$@" 65 | 66 | %environment 67 | # make sure that 'module' is defined 68 | . /etc/profile 69 | # purge any modules that may be loaded outside container 70 | unset LOADEDMODULES 71 | unset _LMFILES_ 72 | # avoid picking up modules from outside of container 73 | module unuse $MODULEPATH 74 | # pick up modules installed in /app 75 | module use /app/modules/all 76 | # load module(s) corresponding to installed software 77 | module load BCFtools/1.10.2-GCC-8.3.0 78 | # we need to make sure the BCFtools are found 79 | export BCFTOOLS_PLUGINS=/app/software/BCFtools/1.10.2-GCC-8.3.0/libexec/bcftools 80 | 81 | %labels 82 | Author J. Sassmannshausen 83 | BCFtools-1.10.2-GCC-8.3.0 84 | -------------------------------------------------------------------------------- /definitions/bowtie/Singularity.Bowtie-1.2.3-foss-2018b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | 38 | cat > /home/easybuild/tbb-2018_U5-GCCcore-7.3.0.eb << 'EOF' 39 | name = 'tbb' 40 | version = '2018_U5' 41 | homepage = 'https://01.org/tbb/' 42 | description = """Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that 43 | take full advantage of multicore performance, that are portable, composable and have future-proof scalability.""" 44 | toolchain = {'name': 'GCCcore', 'version': '7.3.0'} 45 | source_urls = ['https://github.com/01org/tbb/archive/'] 46 | sources = ['%(version)s.tar.gz'] 47 | checksums = [ 48 | ('c4c2896af527392496c5e01ef8579058a71b6eebbd695924cd138841c13f07be', 49 | 'b8dbab5aea2b70cf07844f86fa413e549e099aa3205b6a04059ca92ead93a372'), 50 | ] 51 | builddependencies = [ 52 | ('binutils', '2.30') 53 | ] 54 | moduleclass = 'lib' 55 | EOF 56 | 57 | # configure EasyBuild 58 | cat > /home/easybuild/eb-install.sh << 'EOD' 59 | #!/bin/bash 60 | export EASYBUILD_PREFIX=/scratch 61 | export EASYBUILD_TMPDIR=/scratch/tmp 62 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 63 | export EASYBUILD_INSTALLPATH=/app 64 | export EASYBUILD_PARALLEL=12 65 | eb /home/easybuild/tbb-2018_U5-GCCcore-7.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl 66 | EOD 67 | echo "eb Bowtie-1.2.3-foss-2018b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 68 | 69 | chmod a+x /home/easybuild/eb-install.sh 70 | 71 | su -l easybuild -c /home/easybuild/eb-install.sh 72 | 73 | # cleanup, everything in /scratch is assumed to be temporary 74 | rm -rf /scratch/* 75 | 76 | %runscript 77 | eval "$@" 78 | 79 | %environment 80 | # make sure that 'module' is defined 81 | . /etc/profile 82 | # purge any modules that may be loaded outside container 83 | unset LOADEDMODULES 84 | unset _LMFILES_ 85 | # avoid picking up modules from outside of container 86 | module unuse $MODULEPATH 87 | # pick up modules installed in /app 88 | module use /app/modules/all 89 | # load module(s) corresponding to installed software 90 | module load Bowtie/1.2.3-foss-2018b 91 | 92 | %labels 93 | Author J. Sassmannshausen 94 | Bowtie-1.2.3-foss-2018b 95 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-9.3.0-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | # We set this so if we need to open the container again, we got the environment set up correctly 40 | cat >> /home/easybuild/.bashrc << 'EOG' 41 | export EASYBUILD_PREFIX=/scratch 42 | export EASYBUILD_TMPDIR=/scratch/tmp 43 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 44 | export EASYBUILD_INSTALLPATH=/app 45 | export EASYBUILD_PARALLEL=4 46 | export MODULEPATH=/app/modules/all 47 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 48 | EOG 49 | 50 | # configure EasyBuild 51 | cat > /home/easybuild/eb-install.sh << 'EOD' 52 | #!/bin/bash 53 | shopt -s expand_aliases 54 | export EASYBUILD_PREFIX=/scratch 55 | export EASYBUILD_TMPDIR=/scratch/tmp 56 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 57 | export EASYBUILD_INSTALLPATH=/app 58 | export EASYBUILD_PARALLEL=4 59 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 60 | EOD 61 | echo "eb --fetch GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 62 | echo "eb GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 63 | 64 | chmod a+x /home/easybuild/eb-install.sh 65 | 66 | su -l easybuild -c /home/easybuild/eb-install.sh 67 | 68 | # cleanup, everything in /scratch is assumed to be temporary 69 | rm -rf /scratch/* 70 | 71 | %runscript 72 | eval "$@" 73 | 74 | %environment 75 | # make sure that 'module' is defined 76 | source /etc/profile 77 | # purge any modules that may be loaded outside container 78 | unset LOADEDMODULES 79 | unset _LMFILES_ 80 | # avoid picking up modules from outside of container 81 | module unuse $MODULEPATH 82 | # pick up modules installed in /app 83 | module use /app/modules/all 84 | # load module(s) corresponding to installed software 85 | module load GCC/9.3.0 86 | 87 | %labels 88 | Author J. Sassmannshausen 89 | GCC-9.3.0 90 | -------------------------------------------------------------------------------- /definitions/plink/Singularity.PLINK-2.00a2.3LM-x86_64-lmod: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools Lmod 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # install Lmod RC file 37 | cat > /etc/lmodrc.lua << EOD 38 | scDescriptT = { 39 | { 40 | ["dir"] = "/app/lmodcache", 41 | ["timestamp"] = "/app/lmodcache/timestamp", 42 | }, 43 | } 44 | EOD 45 | 46 | # verbose commands, exit on first error 47 | set -ve 48 | set -o noclobber 49 | cat > /home/easybuild/PLINK-2.00a2.3LM-x86_64.eb << EOD 50 | easyblock = 'PackedBinary' 51 | name = 'PLINK' 52 | version = '2.00a2.3LM-x86_64' 53 | homepage = 'https://www.cog-genomics.org/plink/2.0/' 54 | description = 'Whole-genome association analysis toolset' 55 | toolchain = SYSTEM 56 | source_urls = ['https://s3.amazonaws.com/plink2-assets/alpha2'] 57 | sources = ['plink2_linux_x86_64.zip'] 58 | checksums = ['3fa20a2058df542e928b11d715cc314c01d7c5961525b55fd17a088e6caa9cc9'] 59 | sanity_check_paths = { 60 | 'files': ['plink2'], 61 | 'dirs': [], 62 | } 63 | moduleclass = 'bio' 64 | EOD 65 | # configure EasyBuild 66 | cat > /home/easybuild/eb-install.sh << 'EOD' 67 | #!/bin/bash 68 | export EASYBUILD_PREFIX=/scratch 69 | export EASYBUILD_TMPDIR=/scratch/tmp 70 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 71 | export EASYBUILD_INSTALLPATH=/app 72 | export EASYBUILD_PARALLEL=4 73 | EOD 74 | echo "eb /home/easybuild/PLINK-2.00a2.3LM-x86_64.eb --robot" >> /home/easybuild/eb-install.sh 75 | cat >> /home/easybuild/eb-install.sh << 'EOD' 76 | mkdir -p /app/lmodcache 77 | $LMOD_DIR/update_lmod_system_cache_files -d /app/lmodcache -t /app/lmodcache/timestamp /app/modules/all 78 | EOD 79 | 80 | chmod a+x /home/easybuild/eb-install.sh 81 | 82 | su -l easybuild -c /home/easybuild/eb-install.sh 83 | 84 | # cleanup, everything in /scratch is assumed to be temporary 85 | rm -rf /scratch/* 86 | 87 | %runscript 88 | eval "$@" 89 | 90 | %environment 91 | # make sure that 'module' and 'ml' commands are defined 92 | source /etc/profile 93 | # increase threshold time for Lmod to write cache in $HOME (which we don't want to do) 94 | export LMOD_SHORT_TIME=86400 95 | # purge any modules that may be loaded outside container 96 | module --force purge 97 | # avoid picking up modules from outside of container 98 | module unuse $MODULEPATH 99 | # pick up modules installed in /app 100 | module use /app/modules/all 101 | # load module(s) corresponding to installed software 102 | module load PLINK/2.00a2.3LM-x86_64 103 | 104 | %labels 105 | PLINK-2.00a2.3LM-x86_64 106 | -------------------------------------------------------------------------------- /definitions/gcc/Singularity.GCC-9.3.0-envmod-debian10: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: buster 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python3 python3-setuptools environment-modules tcl 9 | apt install -y python3-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc-8 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip3 install -U pip 21 | pip3 install wheel 22 | pip3 install -U setuptools 23 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip3 install easybuild 25 | 26 | # We need to patch the environment module version for Buster: 27 | cat >> /root/eb-envmod.path << 'EOD' 28 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 29 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 30 | @@ -1260,6 +1260,8 @@ 31 | """Interface to environment modules 4.0+""" 32 | NAME = "Environment Modules v4" 33 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 34 | + if not os.path.exists(COMMAND): 35 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 36 | REQ_VERSION = '4.0.0' 37 | MAX_VERSION = None 38 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 39 | EOD 40 | 41 | patch -d /usr/local/lib/python3.7/dist-packages/easybuild/tools -p0 < /root/eb-envmod.path 42 | 43 | # create 'easybuild' user (if missing) 44 | id easybuild || useradd -s /bin/bash -m easybuild 45 | 46 | # create /app software installation prefix + /scratch sandbox directory 47 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 48 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 49 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 50 | 51 | # verbose commands, exit on first error 52 | set -ve 53 | set -o noclobber 54 | # We set this so if we need to open the container again, we got the environment set up correctly 55 | cat >> /home/easybuild/.bashrc << 'EOG' 56 | export EASYBUILD_PREFIX=/scratch 57 | export EASYBUILD_TMPDIR=/scratch/tmp 58 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 59 | export EASYBUILD_INSTALLPATH=/app 60 | export EASYBUILD_PARALLEL=4 61 | export MODULEPATH=/app/modules/all 62 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 63 | EOG 64 | 65 | # configure EasyBuild 66 | cat > /home/easybuild/eb-install.sh << 'EOD' 67 | #!/bin/bash 68 | shopt -s expand_aliases 69 | export EASYBUILD_PREFIX=/scratch 70 | export EASYBUILD_TMPDIR=/scratch/tmp 71 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 72 | export EASYBUILD_INSTALLPATH=/app 73 | export EASYBUILD_PARALLEL=4 74 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 75 | EOD 76 | echo "eb --fetch GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 77 | echo "eb GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 78 | 79 | chmod a+x /home/easybuild/eb-install.sh 80 | 81 | su -l easybuild -c /home/easybuild/eb-install.sh 82 | 83 | # cleanup, everything in /scratch is assumed to be temporary 84 | rm -rf /scratch/* 85 | 86 | %runscript 87 | eval "$@" 88 | 89 | %environment 90 | # make sure that 'module' is defined 91 | . /etc/profile 92 | # purge any modules that may be loaded outside container 93 | unset LOADEDMODULES 94 | unset _LMFILES_ 95 | # avoid picking up modules from outside of container 96 | module unuse $MODULEPATH 97 | # pick up modules installed in /app 98 | module use /app/modules/all 99 | # load module(s) corresponding to installed software 100 | module load GCC/9.3.0 101 | 102 | %labels 103 | Author J. Sassmannshausen 104 | GCC-9.3.0 105 | -------------------------------------------------------------------------------- /definitions/ruby/Singularity.Ruby-2.7.1-GCCcore-8.3.0-envmod-debian10: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: buster 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python3 python3-setuptools environment-modules tcl 9 | apt install -y python3-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc-8 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | apt install -y man libdb-dev 19 | 20 | # install EasyBuild using pip3 21 | pip3 install -U pip 22 | pip3 install wheel 23 | pip3 install -U setuptools 24 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 25 | pip3 install easybuild 26 | 27 | # We need to patch the environment module version for Buster: 28 | cat >> /root/eb-envmod.path << 'EOD' 29 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 30 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 31 | @@ -1260,6 +1260,8 @@ 32 | """Interface to environment modules 4.0+""" 33 | NAME = "Environment Modules v4" 34 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 35 | + if not os.path.exists(COMMAND): 36 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 37 | REQ_VERSION = '4.0.0' 38 | MAX_VERSION = None 39 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 40 | EOD 41 | 42 | patch -d /usr/local/lib/python3.7/dist-packages/easybuild/tools -p0 < /root/eb-envmod.path 43 | 44 | # create 'easybuild' user (if missing) 45 | id easybuild || useradd -s /bin/bash -m easybuild 46 | 47 | # create /app software installation prefix + /scratch sandbox directory 48 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 49 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 50 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 51 | 52 | # verbose commands, exit on first error 53 | set -ve 54 | set -o noclobber 55 | # We set this so if we need to open the container again, we got the environment set up correctly 56 | cat >> /home/easybuild/.bashrc << 'EOG' 57 | export EASYBUILD_PREFIX=/scratch 58 | export EASYBUILD_TMPDIR=/scratch/tmp 59 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 60 | export EASYBUILD_INSTALLPATH=/app 61 | export EASYBUILD_PARALLEL=4 62 | export MODULEPATH=/app/modules/all 63 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 64 | EOG 65 | 66 | # configure EasyBuild 67 | cat > /home/easybuild/eb-install.sh << 'EOD' 68 | #!/bin/bash 69 | shopt -s expand_aliases 70 | export EASYBUILD_PREFIX=/scratch 71 | export EASYBUILD_TMPDIR=/scratch/tmp 72 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 73 | export EASYBUILD_INSTALLPATH=/app 74 | export EASYBUILD_PARALLEL=4 75 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 76 | EOD 77 | echo "eb --fetch Ruby-2.7.1-GCCcore-8.3.0.eb" >> /home/easybuild/eb-install.sh 78 | echo "eb Ruby-2.7.1-GCCcore-8.3.0.eb" >> /home/easybuild/eb-install.sh 79 | 80 | chmod a+x /home/easybuild/eb-install.sh 81 | 82 | su -l easybuild -c /home/easybuild/eb-install.sh 83 | 84 | # cleanup, everything in /scratch is assumed to be temporary 85 | rm -rf /scratch/* 86 | 87 | %runscript 88 | eval "$@" 89 | 90 | %environment 91 | # make sure that 'module' is defined 92 | . /etc/profile 93 | # purge any modules that may be loaded outside container 94 | unset LOADEDMODULES 95 | unset _LMFILES_ 96 | # avoid picking up modules from outside of container 97 | module unuse $MODULEPATH 98 | # pick up modules installed in /app 99 | module use /app/modules/all 100 | # load module(s) corresponding to installed software 101 | module load Ruby/2.7.1-GCCcore-8.3.0 102 | 103 | %labels 104 | Author J. Sassmannshausen 105 | Ruby-2.7.1-GCCcore-8.3.0 106 | -------------------------------------------------------------------------------- /definitions/meme/Singularity.MEME-5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4-envmod-debian10: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: buster 3 | MirrorURL: http://ftp.tu-graz.ac.at/mirror/debian/ 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python3 python3-setuptools environment-modules tcl 9 | apt install -y python3-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc-8 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libx11-dev 18 | 19 | # install EasyBuild using pip3 20 | pip3 install -U pip 21 | pip3 install wheel 22 | pip3 install -U setuptools 23 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip3 install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | cat > /home/easybuild/MEME-5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4.eb << EOD 38 | # Contribution from the NIHR Biomedical Research Centre 39 | # Guy's and St Thomas' NHS Foundation Trust and King's College London 40 | # uploaded by J. Sassmannshausen 41 | 42 | easyblock = 'ConfigureMake' 43 | 44 | name = 'MEME' 45 | version = '5.1.1' 46 | versionsuffix = '-Perl-%(perlver)s-Python-%(pyver)s' 47 | 48 | homepage = 'http://meme-suite.org' 49 | description = """The MEME Suite allows you to: * discover motifs using MEME, DREME (DNA only) or 50 | GLAM2 on groups of related DNA or protein sequences, * search sequence databases with motifs using 51 | MAST, FIMO, MCAST or GLAM2SCAN, * compare a motif to all motifs in a database of motifs, * associate 52 | motifs with Gene Ontology terms via their putative target genes, and * analyse motif enrichment 53 | using SpaMo or CentriMo.""" 54 | 55 | toolchain = {'name': 'foss', 'version': '2019b'} 56 | 57 | source_urls = ['http://meme-suite.org/meme-software/%(version)s/'] 58 | sources = ['%(namelower)s-%(version)s.tar.gz'] 59 | checksums = ['38d73d256d431ad4eb7da2c817ce56ff2b4e26c39387ff0d6ada088938b38eb5'] 60 | 61 | dependencies = [ 62 | ('libxml2', '2.9.9'), 63 | ('libxslt', '1.1.34'), 64 | ('zlib', '1.2.11'), 65 | ('Perl', '5.30.0'), 66 | ('Python', '3.7.4') 67 | ] 68 | 69 | configopts = '--with-perl=${EBROOTPERL}/bin/perl --with-python3=${EBROOTPYTHON}/bin/python ' 70 | 71 | sanity_check_paths = { 72 | 'files': ["bin/meme", "bin/dreme", "bin/meme-chip"], 73 | 'dirs': ["lib"], 74 | } 75 | 76 | moduleclass = 'bio' 77 | EOD 78 | # configure EasyBuild 79 | cat > /home/easybuild/eb-install.sh << 'EOD' 80 | #!/bin/bash 81 | export EASYBUILD_PREFIX=/scratch 82 | export EASYBUILD_TMPDIR=/scratch/tmp 83 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 84 | export EASYBUILD_INSTALLPATH=/app 85 | export EASYBUILD_PARALLEL=4 86 | EOD 87 | echo "eb /home/easybuild/MEME-5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 88 | 89 | chmod a+x /home/easybuild/eb-install.sh 90 | 91 | su -l easybuild -c /home/easybuild/eb-install.sh 92 | 93 | # cleanup, everything in /scratch is assumed to be temporary 94 | rm -rf /scratch/* 95 | 96 | %runscript 97 | eval "$@" 98 | 99 | %environment 100 | # make sure that 'module' is defined 101 | . /etc/profile 102 | # purge any modules that may be loaded outside container 103 | unset LOADEDMODULES 104 | unset _LMFILES_ 105 | # avoid picking up modules from outside of container 106 | module unuse $MODULEPATH 107 | # pick up modules installed in /app 108 | module use /app/modules/all 109 | # load module(s) corresponding to installed software 110 | module load MEME/5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4 111 | 112 | %labels 113 | Author J. Sassmannshausen 114 | MEME-5.1.1-foss-2019b-Perl-5.30.0-Python-3.7.4 115 | -------------------------------------------------------------------------------- /definitions/samtools/Singularity.SAMtools-1.10-GCC-9.3.0-envmod-debian10: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: buster 3 | # MirrorURL: http://httpredir.debian.org/debian 4 | MirrorURL: http://ftp.tu-graz.ac.at/mirror/debian 5 | 6 | %post 7 | apt update 8 | apt dist-upgrade -y 9 | apt install -y python3 python3-setuptools environment-modules tcl 10 | apt install -y python3-pip 11 | apt install -y bzip2 gzip tar zip unzip xz-utils 12 | apt install -y curl wget 13 | apt install -y patch make 14 | apt install -y file git debianutils 15 | apt install -y gcc-8 16 | apt install -y libibverbs-dev 17 | apt install -y libssl-dev 18 | apt install -y binutils 19 | 20 | # install EasyBuild using pip3 21 | pip3 install -U pip 22 | pip3 install wheel 23 | pip3 install -U setuptools 24 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 25 | pip3 install easybuild 26 | 27 | # We need to patch the environment module version for Buster: 28 | cat >> /root/eb-envmod.path << 'EOD' 29 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 30 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 31 | @@ -1260,6 +1260,8 @@ 32 | """Interface to environment modules 4.0+""" 33 | NAME = "Environment Modules v4" 34 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 35 | + if not os.path.exists(COMMAND): 36 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 37 | REQ_VERSION = '4.0.0' 38 | MAX_VERSION = None 39 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 40 | EOD 41 | 42 | patch -d /usr/local/lib/python3.7/dist-packages/easybuild/tools -p0 < /root/eb-envmod.path 43 | 44 | # create 'easybuild' user (if missing) 45 | id easybuild || useradd -s /bin/bash -m easybuild 46 | 47 | # create /app software installation prefix + /scratch sandbox directory 48 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 49 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 50 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 51 | 52 | # verbose commands, exit on first error 53 | set -ve 54 | set -o noclobber 55 | # We set this so if we need to open the container again, we got the environment set up correctly 56 | cat >> /home/easybuild/.bashrc << 'EOG' 57 | export EASYBUILD_PREFIX=/scratch 58 | export EASYBUILD_TMPDIR=/scratch/tmp 59 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 60 | export EASYBUILD_INSTALLPATH=/app 61 | export EASYBUILD_PARALLEL=4 62 | export MODULEPATH=/app/modules/all 63 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 64 | EOG 65 | 66 | # configure EasyBuild 67 | cat > /home/easybuild/eb-install.sh << 'EOD' 68 | #!/bin/bash 69 | shopt -s expand_aliases 70 | export EASYBUILD_PREFIX=/scratch 71 | export EASYBUILD_TMPDIR=/scratch/tmp 72 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 73 | export EASYBUILD_INSTALLPATH=/app 74 | export EASYBUILD_PARALLEL=4 75 | alias eb="eb --robot --modules-tool=EnvironmentModules --module-syntax=Tcl --download-timeout=1000" 76 | EOD 77 | echo "eb --fetch SAMtools-1.10-GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 78 | echo "eb --fetch Perl-5.30.2-GCCcore-9.3.0.eb" >> /home/easybuild/eb-install.sh 79 | echo "eb SAMtools-1.10-GCC-9.3.0.eb" >> /home/easybuild/eb-install.sh 80 | echo "eb Perl-5.30.2-GCCcore-9.3.0.eb" >> /home/easybuild/eb-install.sh 81 | 82 | chmod a+x /home/easybuild/eb-install.sh 83 | 84 | su -l easybuild -c /home/easybuild/eb-install.sh 85 | 86 | # cleanup, everything in /scratch is assumed to be temporary 87 | rm -rf /scratch/* 88 | 89 | %runscript 90 | eval "$@" 91 | 92 | %environment 93 | # make sure that 'module' is defined 94 | . /etc/profile 95 | # purge any modules that may be loaded outside container 96 | unset LOADEDMODULES 97 | unset _LMFILES_ 98 | # avoid picking up modules from outside of container 99 | module unuse $MODULEPATH 100 | # pick up modules installed in /app 101 | module use /app/modules/all 102 | # load module(s) corresponding to installed software 103 | module load SAMtools/1.10-GCC-9.3.0 104 | 105 | %labels 106 | Author J. Sassmannshausen 107 | SAMtools-1.10-GCC-9.3.0 108 | -------------------------------------------------------------------------------- /definitions/salmon/Singularity.Salmon-1.2.1-gompi-2019b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | cat > /home/easybuild/Salmon-1.2.1-gompi-2019b.eb << EOD 38 | ## 39 | # This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia 40 | # Homepage: https://staff.flinders.edu.au/research/deep-thought 41 | # 42 | # Authors:: Robert Qiao 43 | # License:: GLPv2 44 | # 45 | # Notes:: 46 | ## 47 | # Contribution from the NIHR Biomedical Research Centre 48 | # Guy's and St Thomas' NHS Foundation Trust and King's College London 49 | # uploaded by J. Sassmannshausen 50 | 51 | easyblock = 'CMakeMake' 52 | 53 | name = 'Salmon' 54 | version = '1.2.1' 55 | 56 | homepage = 'https://github.com/COMBINE-lab/salmon' 57 | description = """Salmon is a wicked-fast program to produce a highly-accurate, 58 | transcript-level quantification estimates from RNA-seq data.""" 59 | 60 | toolchain = {'name': 'gompi', 'version': '2019b'} 61 | toolchainopts = {'pic': True, 'openmp': True} 62 | 63 | github_account = 'COMBINE-lab' 64 | source_urls = [GITHUB_LOWER_SOURCE] 65 | sources = ['v%(version)s.tar.gz'] 66 | checksums = ['10a58a22cb5b3924df3bf78be9cb4b83dce4f6a61e4c6a6e37f3a56ab8ac166f'] 67 | 68 | builddependencies = [ 69 | ('CMake', '3.15.3'), 70 | ('pkg-config', '0.29.2'), 71 | ('jemalloc', '5.2.1'), 72 | ] 73 | 74 | dependencies = [ 75 | ('Boost', '1.71.0'), 76 | ('tbb', '2019_U9'), 77 | ] 78 | 79 | configopts = '-DJEMALLOC_ROOT=$EBROOTJEMALLOC' 80 | 81 | # need to unset the $LD_PRELOAD set be jemalloc to avoid hanging 'make test' 82 | # since jemalloc is statically linked in Salmon (and hence only a build dep), 83 | # this only affects the tests 84 | pretestopts = "unset LD_PRELOAD && " 85 | runtest = 'test' 86 | 87 | sanity_check_paths = { 88 | 'files': ['bin/%(namelower)s'] + ['lib/lib%s.a' % x for x in ['graphdump', 'ntcard', 'salmon_core', 'twopaco']], 89 | 'dirs': [], 90 | } 91 | 92 | sanity_check_commands = ["salmon --help"] 93 | 94 | moduleclass = 'bio' 95 | EOD 96 | # configure EasyBuild 97 | cat > /home/easybuild/eb-install.sh << 'EOD' 98 | #!/bin/bash 99 | export EASYBUILD_PREFIX=/scratch 100 | export EASYBUILD_TMPDIR=/scratch/tmp 101 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 102 | export EASYBUILD_INSTALLPATH=/app 103 | export EASYBUILD_PARALLEL=4 104 | EOD 105 | echo "eb /home/easybuild/Salmon-1.2.1-gompi-2019b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 106 | 107 | chmod a+x /home/easybuild/eb-install.sh 108 | 109 | su -l easybuild -c /home/easybuild/eb-install.sh 110 | 111 | # cleanup, everything in /scratch is assumed to be temporary 112 | rm -rf /scratch/* 113 | 114 | %runscript 115 | eval "$@" 116 | 117 | %environment 118 | # make sure that 'module' is defined 119 | . /etc/profile 120 | # purge any modules that may be loaded outside container 121 | unset LOADEDMODULES 122 | unset _LMFILES_ 123 | # avoid picking up modules from outside of container 124 | module unuse $MODULEPATH 125 | # pick up modules installed in /app 126 | module use /app/modules/all 127 | # load module(s) corresponding to installed software 128 | module load Salmon/1.2.1-gompi-2019b 129 | 130 | %labels 131 | Salmon-1.2.1-gompi-2019b 132 | -------------------------------------------------------------------------------- /definitions/steak/Singularity.STEAK-20190912-foss-2019b-Python-2.7.16-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # install EasyBuild using pip 22 | pip install -U pip 23 | pip install wheel 24 | pip install -U setuptools 25 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | # verbose commands, exit on first error 37 | set -ve 38 | set -o noclobber 39 | cat > /home/easybuild/STEAK-20190912-foss-2019b-Python-2.7.16.eb << EOD 40 | # Contribution from the NIHR Biomedical Research Centre 41 | # Guy's and St Thomas' NHS Foundation Trust and King's College London 42 | # uploaded by J. Sassmannshausen 43 | 44 | easyblock = 'MakeCp' 45 | 46 | name = 'STEAK' 47 | version = '2019.09.12' 48 | versionsuffix = "-Python-%(pyver)s" 49 | 50 | homepage = 'https://omictools.com/steak-tool' 51 | description = """Detects integrations of any sort in high-throughput 52 | sequencing (HTS) data. STEAK was built for validating and discovering 53 | transposable element (TE) and retroviral integrations in a variety of 54 | HTS data. The software performs on both single-end (SE) and paired-end ( 55 | PE) libraries and on a variety of HTS sequencing strategies. It can 56 | be applied to a broad range of research interests and clinical uses 57 | such as population genetic studies and detecting polymorphic integrations.""" 58 | 59 | toolchain = {'name': 'foss', 'version': '2019b'} 60 | 61 | source_urls = ['https://github.com/applevir/STEAK/archive/'] 62 | sources = [ 63 | {'download_filename': '43f079da8bbc37a34efd7b3a0a6955a13f6d4137.tar.gz', 64 | 'filename': 'steak-20190912.tar.gz'} 65 | ] 66 | checksums = ['f200865e2588c2a037527ad4cf8d2b6539217d7e9bf8f515b99e4288eb682b37'] 67 | 68 | dependencies = [ 69 | ('Boost', '1.71.0'), 70 | ('Python', '2.7.16'), 71 | ] 72 | 73 | files_to_copy = [(['steak'], 'bin'), "README.md", "GPLv3.txt"] 74 | 75 | sanity_check_paths = { 76 | 'files': ['bin/steak'], 77 | 'dirs': [], 78 | } 79 | 80 | moduleclass = 'bio' 81 | EOD 82 | # configure EasyBuild 83 | cat > /home/easybuild/eb-install.sh << 'EOD' 84 | #!/bin/bash 85 | export EASYBUILD_PREFIX=/scratch 86 | export EASYBUILD_TMPDIR=/scratch/tmp 87 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 88 | export EASYBUILD_INSTALLPATH=/app 89 | export EASYBUILD_PARALLEL=4 90 | EOD 91 | echo "eb /home/easybuild/STEAK-20190912-foss-2019b-Python-2.7.16.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 92 | 93 | chmod a+x /home/easybuild/eb-install.sh 94 | 95 | su -l easybuild -c /home/easybuild/eb-install.sh 96 | 97 | # cleanup, everything in /scratch is assumed to be temporary 98 | rm -rf /scratch/* 99 | 100 | %runscript 101 | eval "$@" 102 | 103 | %environment 104 | # make sure that 'module' is defined 105 | source /etc/profile 106 | # purge any modules that may be loaded outside container 107 | unset LOADEDMODULES 108 | unset _LMFILES_ 109 | # avoid picking up modules from outside of container 110 | module unuse $MODULEPATH 111 | # pick up modules installed in /app 112 | module use /app/modules/all 113 | # load module(s) corresponding to installed software 114 | module load STEAK/2019.09.12-foss-2019b-Python-2.7.16 115 | 116 | %labels 117 | Author J. Sassmannshausen 118 | STEAK-20190912-foss-2019b-Python-2.7.16 119 | -------------------------------------------------------------------------------- /definitions/HTSeq/Singularity.HTSeq-0.11.3-foss-2020b-centos-7-envmod: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python3 environment-modules 10 | yum install --quiet --assumeyes python3-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel openssl 20 | yum clean all 21 | # install EasyBuild using pip3 22 | pip3 install -U pip 23 | pip3 install wheel 24 | pip3 install -U setuptools 25 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 26 | pip3 install easybuild 27 | 28 | # create 'easybuild' user (if missing) 29 | id easybuild || useradd easybuild 30 | 31 | # create /app software installation prefix + /scratch sandbox directory 32 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 33 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 34 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 35 | 36 | mkdir /root/bin 37 | cat >> /root/bin/uid-change.sh << 'EOD' 38 | #!/usr/bin/env bash 39 | # script to correct the UID/GID of easybuild user 40 | # in case fakeroot was used 41 | chown -R easybuild:easybuild /app/ 42 | chown -R easybuild:easybuild /home/easybuild/ 43 | chown -R easybuild:easybuild /scratch/ 44 | EOD 45 | chmod u+x /root/bin/uid-change.sh 46 | cat >> /root/eb-envmod.path << 'EOD' 47 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 48 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 49 | @@ -1260,6 +1260,8 @@ 50 | """Interface to environment modules 4.0+""" 51 | NAME = "Environment Modules v4" 52 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 53 | + if not os.path.exists(COMMAND): 54 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 55 | REQ_VERSION = '4.0.0' 56 | MAX_VERSION = None 57 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 58 | EOD 59 | # verbose commands, exit on first error 60 | set -ve 61 | set -o noclobber 62 | 63 | # We set this so if we need to open the container again, we got the environment set up correctly 64 | cat >> /home/easybuild/.bashrc << 'EOG' 65 | export EASYBUILD_PREFIX=/scratch 66 | export EASYBUILD_TMPDIR=/scratch/tmp 67 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 68 | export EASYBUILD_INSTALLPATH=/app 69 | export EASYBUILD_PARALLEL=4 70 | export EB_PYTHON=python3 71 | export MODULEPATH=/app/modules/all 72 | alias eb="eb --robot --download-timeout=1000 --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 73 | EOG 74 | 75 | # configure EasyBuild 76 | cat > /home/easybuild/eb-install.sh << 'EOD' 77 | #!/bin/bash 78 | shopt -s expand_aliases 79 | export EASYBUILD_PREFIX=/scratch 80 | export EASYBUILD_TMPDIR=/scratch/tmp 81 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 82 | export EASYBUILD_INSTALLPATH=/app 83 | export EASYBUILD_PARALLEL=4 84 | export EB_PYTHON=python3 85 | alias eb="eb --robot --download-timeout=1000 --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 86 | EOD 87 | 88 | echo "eb --fetch --from-pr 12379 HTSeq-0.11.3-foss-2020b.eb" >> /home/easybuild/eb-install.sh 89 | echo "eb --from-pr 12379 HTSeq-0.11.3-foss-2020b.eb" >> /home/easybuild/eb-install.sh 90 | chmod a+x /home/easybuild/eb-install.sh 91 | 92 | su -l easybuild -c /home/easybuild/eb-install.sh 93 | 94 | # cleanup, everything in /scratch is assumed to be temporary 95 | rm -rf /scratch/* 96 | 97 | %runscript 98 | eval "$@" 99 | 100 | %environment 101 | # make sure that 'module' and 'ml' commands are defined 102 | source /etc/profile 103 | # purge any modules that may be loaded outside container 104 | unset LOADEDMODULES 105 | unset _LMFILES_ 106 | # avoid picking up modules from outside of container 107 | module unuse $MODULEPATH 108 | # pick up modules installed in /app 109 | module use /app/modules/all 110 | # load module(s) corresponding to installed software 111 | module load HTSeq/0.11.3-foss-2020b 112 | 113 | %labels 114 | Author J. Sassmannshausen 115 | HTSeq-0.11.3-foss-2020b 116 | -------------------------------------------------------------------------------- /scripts/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # This script sets the various symlinks to the singularity-definition-create.sh file. 3 | # The options are the distributions and versions and Lmod or environment-modules 4 | # As Python2 is depreciated, we are not using that any more. 5 | # We also set the various paths, if required. 6 | 7 | # Where is the script located? 8 | BASEDIR=$(dirname "$0") 9 | 10 | # Do we want to create definition file and build the container in one go, 11 | # or just create the definition file? 12 | if [ ! -z "$1" ]; then 13 | oper="$1" 14 | else 15 | read -p 'Do you want to build and create or just create the definition file? (Build/Create)? ' oper 16 | fi 17 | # Check we got it right: 18 | case ${oper} in 19 | B|Build|build|b ) 20 | oper="build" 21 | ;; 22 | C|Create|create|c ) 23 | oper="create" 24 | ;; 25 | * ) 26 | echo "Sorry, your input was not recognised." 27 | echo "I am stopping here now." 28 | exit 1 29 | esac 30 | 31 | 32 | # Which distribution do we want to use? 33 | # Debian, Ubuntu, CentOS or Rocky 34 | if [ ! -z "$2" ]; then 35 | distro="$2" 36 | else 37 | read -p 'Which Distribution do you want to use? (Debian, Ubuntu, CentOS, Rocky)? ' distro 38 | fi 39 | # Check we got it right: 40 | case ${distro} in 41 | Debian|debian|d ) 42 | distro="debian" 43 | if [ ! -z "$3" ]; then 44 | distro_version="$3" 45 | else 46 | read -p 'Which version do you want to use? (Buster, Bullseye, Bookworm)? ' distro_version 47 | fi 48 | case ${distro_version} in 49 | Buster|buster|10 ) 50 | distro_version="10" 51 | ;; 52 | Bullseye|bullseye|11 ) 53 | distro_version="11" 54 | ;; 55 | Bookworm|bookworm|12 ) 56 | distro_version="12" 57 | ;; 58 | *) 59 | echo "Sorry, your input was not recognised." 60 | echo "I am stopping here now." 61 | exit 1 62 | esac 63 | ;; 64 | Ubuntu|ubuntu|u ) 65 | distro="ubuntu" 66 | if [ ! -z "$3" ]; then 67 | distro_version="$3" 68 | else 69 | read -p 'Which version do you want to use? (Focal)? ' distro_version 70 | fi 71 | case ${distro_version} in 72 | Focal|focal|f|20.04 ) 73 | distro_version="20.04" 74 | ;; 75 | *) 76 | echo "Sorry, your input was not recognised." 77 | echo "I am stopping here now." 78 | exit 1 79 | esac 80 | ;; 81 | CentOS|Centos|centos|c ) 82 | distro="centos" 83 | if [ ! -z "$3" ]; then 84 | distro_version="$3" 85 | else 86 | read -p 'Which version do you want to use? (7, 8)? ' distro_version 87 | fi 88 | case ${distro_version} in 89 | 7 ) 90 | distro_version="7" 91 | ;; 92 | 8 ) 93 | distro_version="8" 94 | echo "CentOS-8 is end of life. We suggest you are using Rocky instead." 95 | echo "Stopping here." 96 | exit 2 97 | ;; 98 | *) 99 | echo "Sorry, your input was not recognised." 100 | echo "I am stopping here now." 101 | exit 1 102 | esac 103 | ;; 104 | Rocky|rocky|r ) 105 | distro="rocky" 106 | if [ ! -z "$3" ]; then 107 | distro_version="$3" 108 | else 109 | read -p 'Which version do you want to use? (8, 8.3, 8.4, 8.5)? ' distro_version 110 | fi 111 | case ${distro_version} in 112 | 8 ) 113 | distro_version="8" 114 | ;; 115 | 8.3 ) 116 | distro_version="8.3" 117 | ;; 118 | 8.4 ) 119 | distro_version="8.4" 120 | ;; 121 | 8.5 ) 122 | distro_version="8.5" 123 | ;; 124 | *) 125 | echo "Sorry, your input was not recognised." 126 | echo "I am stopping here now." 127 | exit 1 128 | esac 129 | ;; 130 | * ) 131 | echo "Sorry, your input was not recognised." 132 | echo "I am stopping here now." 133 | exit 1 134 | esac 135 | 136 | # Do we want to create definition file and build the container in one go, 137 | # or just create the definition file? 138 | if [ ! -z "$4" ]; then 139 | mod="$4" 140 | else 141 | read -p 'Do you want to use Lmod or environment modules? (Lmod, Envmod)? ' mod 142 | fi 143 | # Check we got it right: 144 | case ${mod} in 145 | Lmod|lmod|l ) 146 | mod="lmod" 147 | ;; 148 | Envmod|envmod|environment-modules|env|e ) 149 | mod="envmodules" 150 | ;; 151 | * ) 152 | echo "Sorry, your input was not recognised" 153 | echo "I am stopping here now" 154 | exit 1 155 | esac 156 | 157 | # Do we want to install that in the user's bin dir or not? 158 | if [ ! -z "$5" ]; then 159 | bin_dir="$5" 160 | else 161 | read -p 'Do you want the symbolic links to be installed in your ~/bin directory (y/n)? ' bin_dir 162 | fi 163 | 164 | case ${bin_dir} in 165 | Y|y ) 166 | ln -s $BASEDIR/singularity-definition.sh ~/bin/container-$oper-$distro$distro_version-$mod.sh 167 | ;; 168 | N|n ) 169 | ln -s "$BASEDIR"/singularity-definition.sh container-$oper-$distro$distro_version-$mod.sh 170 | ;; 171 | esac 172 | 173 | -------------------------------------------------------------------------------- /scripts/container-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to build a Singularity sif-container, optionally as a sandbox. 3 | # We might want to set a temporary directory to do this but that 4 | # is for later. 5 | # Right now, we keep it simple 6 | # The script needs NOT to be executed with sudo 7 | # The only time we need sudo is to remove the chroot-directory 8 | # from a sandbox-build at the end of the build. 9 | # Thanks to Bennet Fauber and Sebastian Achilles for the inspiration 10 | # to this script 11 | # Version 23.2.2021 12 | 13 | # We first check if sudo is installed at all, which we need not for the 14 | # script but to remove the chroot-directoy later. 15 | command -v sudo &> /dev/null 16 | if [ $? != 0 ]; then 17 | echo "sudo is not installed, please install it first" 18 | exit 1 19 | fi 20 | 21 | # We also need to make sure that Singularity is installed: 22 | command -v singularity &> /dev/null 23 | if [ $? != 0 ]; then 24 | echo "Singularity is not installed, please install it first!" 25 | exit 1 26 | fi 27 | 28 | command -v fakeroot &> /dev/null 29 | if [ $? != 0 ]; then 30 | echo "fakeroot is not installed, please install it first!" 31 | exit 1 32 | fi 33 | 34 | # Fakeroot will not work for a normal user unless a few things are set. 35 | # This depends on the distro, so we check that first: 36 | os_version=$(grep -w ID /etc/*-release |cut -f 2 -d = |tr -d \") 37 | 38 | case ${os_version} in 39 | 40 | debian ) 41 | # On Debian at least, fakeroot will not work unless 42 | # /proc/sys/kernel/unprivileged_userns_clone 43 | # is set to 1. So we better check this here first. 44 | # See: https://github.com/hpcng/singularity/issues/4361 45 | fr_check=$(cat /proc/sys/kernel/unprivileged_userns_clone) 46 | if [ "$fr_check" != 1 ]; then 47 | echo "Please make sure that you can use fakeroot by setting this:" 48 | echo "cat /proc/sys/kernel/unprivileged_userns_clone" 49 | echo "to 1. This needs to be done at elevated privileges." 50 | echo "If that is not possible, you cannot use the scripts unfortunately!" 51 | exit 1 52 | fi 53 | ;; 54 | centos ) 55 | # On Centos, we can do it this way: 56 | # From 7.4, kernel support is included but must be enabled with: 57 | # echo 10000 > /proc/sys/user/max_user_namespaces 58 | fr_check=$(cat /proc/sys/user/max_user_namespaces) 59 | if [ "$fr_check" == 0 ]; then 60 | echo "Please make sure that you can use fakeroot by setting this:" 61 | echo "cat /proc/sys/user/max_user_namespaces" 62 | echo "to 10000. This needs to be done at elevated privileges." 63 | echo "If that is not possible, you cannot use the scripts unfortunately!" 64 | exit 1 65 | fi 66 | esac 67 | 68 | # As we are using fakeroot, we need to make sure that the PATH is set accordingly 69 | # This works at least for Debian 70 | export PATH=/usr/sbin:$PATH 71 | 72 | # Now we get the name of the Singularity definition file: 73 | if [ ! -z "$1" ]; then 74 | definitionfile="$1" 75 | else 76 | read -p 'Please provide the name of the Singularity Definition file ' definitionfile 77 | fi 78 | 79 | # We do some manipulation of the name for the container by simply removing the 80 | # Singularity bit at the beginning. 81 | container="${definitionfile#Singularity.*}".sif 82 | 83 | # We need to know if we need to build a Sandbox as well 84 | if [ ! -z "$2" ]; then 85 | sandbox="$2" 86 | else 87 | read -p 'Do you want to build a Sandbox as well? (y/N) ' sandbox 88 | fi 89 | 90 | case "${sandbox}" in 91 | y|Y|yes|Yes|YES ) 92 | sandbox="yes" 93 | ;; 94 | * ) 95 | sandbox="no" 96 | ;; 97 | esac 98 | 99 | if [ "${sandbox}" == "yes" ]; then 100 | # In case we want to build a sandbox, we need this 101 | sandboxname=${container%.sif} 102 | echo "The sandbox ${sandboxname} will be build now." 103 | echo "Please be patient as this might take some time." 104 | $(command -v singularity) build --fakeroot --sandbox "${sandboxname}" "${definitionfile}" 105 | if [ $? != 0 ]; then 106 | echo "Something went wrong" 107 | exit 1 108 | fi 109 | echo "The SIF file ${container} will be build now." 110 | echo "Please be patient as this might take some time." 111 | $(command -v singularity) build --fakeroot "${container}" "${definitionfile}" 112 | if [ $? != 0 ]; then 113 | echo "Something went wrong" 114 | exit 1 115 | fi 116 | else 117 | echo "The SIF file ${container} will be build now." 118 | echo "Please be patient as this might take some time." 119 | $(command -v singularity) build --fakeroot "${container}" "${definitionfile}" 120 | if [ $? != 0 ]; then 121 | echo "Something went wrong" 122 | exit 1 123 | fi 124 | fi 125 | 126 | -------------------------------------------------------------------------------- /definitions/salmon/Singularity.Salmon-1.1.0-gompi-2019b-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils 18 | 19 | # install EasyBuild using pip3 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | 38 | cat > /home/easybuild/tbb-2019_U9-GCCcore-8.3.0.eb << 'EOF' 39 | name = 'tbb' 40 | version = '2019_U9' 41 | homepage = 'https://github.com/oneapi-src/oneTBB' 42 | description = """Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that 43 | take full advantage of multicore performance, that are portable, composable and have future-proof scalability.""" 44 | toolchain = {'name': 'GCCcore', 'version': '8.3.0'} 45 | source_urls = ['https://github.com/01org/tbb/archive/'] 46 | sources = ['%(version)s.tar.gz'] 47 | checksums = [ 48 | ('15652f5328cf00c576f065e5cd3eaf3317422fe82afb67a9bcec0dc065bd2abe', 49 | '3f5ea81b9caa195f1967a599036b473b2e7c347117330cda99b79cfcf5b77c84'), 50 | ] 51 | builddependencies = [ 52 | ('binutils', '2.32') 53 | ] 54 | moduleclass = 'lib' 55 | EOF 56 | 57 | cat > /home/easybuild/Salmon-1.1.0-gompi-2019b.eb << EOD 58 | ## 59 | # This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia 60 | # Homepage: https://staff.flinders.edu.au/research/deep-thought 61 | # 62 | # Authors:: Robert Qiao 63 | # License:: GLPv2 64 | # 65 | # Notes:: 66 | ## 67 | 68 | easyblock = 'CMakeMake' 69 | 70 | name = 'Salmon' 71 | version = '1.1.0' 72 | 73 | homepage = 'https://github.com/COMBINE-lab/salmon' 74 | description = """Salmon is a wicked-fast program to produce a highly-accurate, 75 | transcript-level quantification estimates from RNA-seq data.""" 76 | 77 | toolchain = {'name': 'gompi', 'version': '2019b'} 78 | toolchainopts = {'pic': True, 'openmp': True} 79 | 80 | github_account = 'COMBINE-lab' 81 | source_urls = [GITHUB_LOWER_SOURCE] 82 | sources = ['v%(version)s.tar.gz'] 83 | checksums = ['550bbdc18970b015f467d418385a5779cd0d6f642cb710766c66761c12c9bc50'] 84 | 85 | builddependencies = [ 86 | ('CMake', '3.15.3'), 87 | ('pkg-config', '0.29.2'), 88 | ('jemalloc', '5.2.1'), 89 | ] 90 | 91 | dependencies = [ 92 | ('Boost', '1.71.0'), 93 | ('tbb', '2019_U9'), 94 | ] 95 | 96 | configopts = '-DJEMALLOC_ROOT=$EBROOTJEMALLOC' 97 | 98 | # need to unset the $LD_PRELOAD set be jemalloc to avoid hanging 'make test' 99 | # since jemalloc is statically linked in Salmon (and hence only a build dep), 100 | # this only affects the tests 101 | pretestopts = "unset LD_PRELOAD && " 102 | runtest = 'test' 103 | 104 | sanity_check_paths = { 105 | 'files': ['bin/%(namelower)s'] + ['lib/lib%s.a' % x for x in ['graphdump', 'ntcard', 'salmon_core', 'twopaco']], 106 | 'dirs': [], 107 | } 108 | 109 | sanity_check_commands = ["salmon --help"] 110 | 111 | moduleclass = 'bio' 112 | EOD 113 | # configure EasyBuild 114 | cat > /home/easybuild/eb-install.sh << 'EOD' 115 | #!/bin/bash 116 | export EASYBUILD_PREFIX=/scratch 117 | export EASYBUILD_TMPDIR=/scratch/tmp 118 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 119 | export EASYBUILD_INSTALLPATH=/app 120 | export EASYBUILD_PARALLEL=12 121 | mkdir -p /scratch/sources/g/GCCcore 122 | wget -O /scratch/sources/g/GCCcore/isl-0.20.tar.bz2 http://isl.gforge.inria.fr/isl-0.20.tar.bz2 123 | eb /home/easybuild/tbb-2019_U9-GCCcore-8.3.0.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl 124 | EOD 125 | echo "eb /home/easybuild/Salmon-1.1.0-gompi-2019b.eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl" >> /home/easybuild/eb-install.sh 126 | 127 | chmod a+x /home/easybuild/eb-install.sh 128 | 129 | su -l easybuild -c /home/easybuild/eb-install.sh 130 | 131 | # cleanup, everything in /scratch is assumed to be temporary 132 | rm -rf /scratch/* 133 | 134 | %runscript 135 | eval "$@" 136 | 137 | %environment 138 | # make sure that 'module' is defined 139 | . /etc/profile 140 | # purge any modules that may be loaded outside container 141 | unset LOADEDMODULES 142 | unset _LMFILES_ 143 | # avoid picking up modules from outside of container 144 | module unuse $MODULEPATH 145 | # pick up modules installed in /app 146 | module use /app/modules/all 147 | # load module(s) corresponding to installed software 148 | module load Salmon/1.1.0-gompi-2019b 149 | 150 | %labels 151 | Author J. Sassmannshausen 152 | Salmon-1.1.0-gompi-2019b 153 | -------------------------------------------------------------------------------- /definitions/salmon/Singularity.Salmon-1.3.0-gompi-2020a-envmod-debian9: -------------------------------------------------------------------------------- 1 | Bootstrap: debootstrap 2 | OSVersion: stretch 3 | MirrorURL: http://httpredir.debian.org/debian 4 | 5 | %post 6 | apt update 7 | apt dist-upgrade -y 8 | apt install -y python python-setuptools environment-modules tcl 9 | apt install -y python-pip 10 | apt install -y bzip2 gzip tar zip unzip xz-utils 11 | apt install -y curl wget 12 | apt install -y patch make 13 | apt install -y file git debianutils 14 | apt install -y gcc 15 | apt install -y libibverbs-dev 16 | apt install -y libssl-dev 17 | apt install -y binutils libthread-queue-any-perl 18 | 19 | # install EasyBuild using pip 20 | pip install -U pip 21 | pip install wheel 22 | pip install -U setuptools 23 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 24 | pip install easybuild 25 | 26 | # create 'easybuild' user (if missing) 27 | id easybuild || useradd -s /bin/bash -m easybuild 28 | 29 | # create /app software installation prefix + /scratch sandbox directory 30 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 31 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 32 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 33 | 34 | # verbose commands, exit on first error 35 | set -ve 36 | set -o noclobber 37 | cat > /home/easybuild/Salmon-1.3.0-gompi-2020a.eb << 'EOD' 38 | easyblock = 'CMakeMake' 39 | name = 'Salmon' 40 | version = '1.3.0' 41 | homepage = 'https://github.com/COMBINE-lab/salmon' 42 | description = """Salmon is a wicked-fast program to produce a highly-accurate, 43 | transcript-level quantification estimates from RNA-seq data.""" 44 | toolchain = {'name': 'gompi', 'version': '2020a'} 45 | toolchainopts = {'pic': True, 'openmp': True} 46 | github_account = 'COMBINE-lab' 47 | source_urls = [GITHUB_LOWER_SOURCE] 48 | sources = ['v%(version)s.tar.gz'] 49 | checksums = ['c105be481630d57e7022bf870eb040857834303abff05fe0e971dda5ed6f0236'] 50 | builddependencies = [ 51 | ('CMake', '3.16.4'), 52 | ('pkg-config', '0.29.2'), 53 | ('jemalloc', '5.2.1'), 54 | ] 55 | dependencies = [ 56 | ('Boost', '1.72.0'), 57 | ('tbb', '2020.1'), 58 | ] 59 | configopts = '-DJEMALLOC_ROOT=$EBROOTJEMALLOC -DNO_IPO=1' 60 | pretestopts = "unset LD_PRELOAD && " 61 | runtest = 'test' 62 | sanity_check_paths = { 63 | 'files': ['bin/%(namelower)s'] + ['lib/lib%s.a' % x for x in ['graphdump', 'ntcard', 'salmon_core', 'twopaco']], 64 | 'dirs': [], 65 | } 66 | sanity_check_commands = ["salmon --help"] 67 | moduleclass = 'bio' 68 | EOD 69 | 70 | cat > /home/easybuild/jemalloc-5.2.1-GCCcore-9.3.0.eb << 'EOD' 71 | easyblock = 'ConfigureMake' 72 | 73 | name = 'jemalloc' 74 | version = '5.2.1' 75 | 76 | homepage = 'http://jemalloc.net' 77 | description = """jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and 78 | scalable concurrency support.""" 79 | 80 | toolchain = {'name': 'GCCcore', 'version': '9.3.0'} 81 | 82 | source_urls = ['https://github.com/jemalloc/jemalloc/archive'] 83 | sources = ['%(version)s.tar.gz'] 84 | checksums = ['ed51b0b37098af4ca6ed31c22324635263f8ad6471889e0592a9c0dba9136aea'] 85 | 86 | builddependencies = [ 87 | ('Autotools', '20180311'), 88 | ('binutils', '2.34'), 89 | ] 90 | 91 | # From version 5.2.1 (or maybe earlier) it does no longer build, 92 | # nor try to install, documentation if xsltproc is missing. 93 | # So we can use normal installation. 94 | preconfigopts = "./autogen.sh && " 95 | configopts = "--with-version=%(version)s-0-g0000 " # build with version info 96 | 97 | sanity_check_paths = { 98 | 'files': ['bin/jeprof', 'lib/libjemalloc.a', 'lib/libjemalloc_pic.a', 'lib/libjemalloc.%s' % SHLIB_EXT, 99 | 'include/jemalloc/jemalloc.h'], 100 | 'dirs': [], 101 | } 102 | 103 | # jemalloc can be used via $LD_PRELOAD, but we don't enable this by 104 | # default, you need to opt-in to it 105 | # modextrapaths = {'LD_PRELOAD': ['lib/libjemalloc.%s' % SHLIB_EXT]} 106 | 107 | moduleclass = 'lib' 108 | EOD 109 | # We set this so if we need to open the container again, we got the environment set up correctly 110 | cat >> /home/easybuild/.bashrc << 'EOG' 111 | export EASYBUILD_PREFIX=/scratch 112 | export EASYBUILD_TMPDIR=/scratch/tmp 113 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 114 | export EASYBUILD_INSTALLPATH=/app 115 | export EASYBUILD_PARALLEL=4 116 | export MODULEPATH=/app/modules/all 117 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 118 | EOG 119 | 120 | # configure EasyBuild 121 | cat > /home/easybuild/eb-install.sh << 'EOD' 122 | #!/bin/bash 123 | shopt -s expand_aliases 124 | export EASYBUILD_PREFIX=/scratch 125 | export EASYBUILD_TMPDIR=/scratch/tmp 126 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 127 | export EASYBUILD_INSTALLPATH=/app 128 | export EASYBUILD_PARALLEL=4 129 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 130 | EOD 131 | echo "eb --fetch /home/easybuild/jemalloc-5.2.1-GCCcore-9.3.0.eb" >> /home/easybuild/eb-install.sh 132 | echo "eb /home/easybuild/jemalloc-5.2.1-GCCcore-9.3.0.eb" >> /home/easybuild/eb-install.sh 133 | echo "eb --fetch Salmon-1.3.0-gompi-2020a.eb" >> /home/easybuild/eb-install.sh 134 | echo "eb Salmon-1.3.0-gompi-2020a.eb" >> /home/easybuild/eb-install.sh 135 | 136 | chmod a+x /home/easybuild/eb-install.sh 137 | 138 | su -l easybuild -c /home/easybuild/eb-install.sh 139 | 140 | # cleanup, everything in /scratch is assumed to be temporary 141 | rm -rf /scratch/* 142 | 143 | %runscript 144 | eval "$@" 145 | 146 | %environment 147 | # make sure that 'module' is defined 148 | . /etc/profile 149 | # purge any modules that may be loaded outside container 150 | unset LOADEDMODULES 151 | unset _LMFILES_ 152 | # avoid picking up modules from outside of container 153 | module unuse $MODULEPATH 154 | # pick up modules installed in /app 155 | module use /app/modules/all 156 | # load module(s) corresponding to installed software 157 | module load Salmon/1.3.0-gompi-2020a 158 | 159 | %labels 160 | Author J. Sassmannshausen 161 | Salmon-1.3.0-gompi-2020a 162 | -------------------------------------------------------------------------------- /definitions/RSEM/Singularity.RSEM-1.3.3-foss-2019b-centos-7-envmod: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python3 environment-modules 10 | yum install --quiet --assumeyes python3-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel openssl 20 | yum clean all 21 | 22 | # install EasyBuild using pip3 23 | pip3 install -U pip 24 | pip3 install wheel 25 | pip3 install -U setuptools 26 | pip3 install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 27 | pip3 install easybuild 28 | 29 | # create 'easybuild' user (if missing) 30 | id easybuild || useradd easybuild 31 | 32 | # create /app software installation prefix + /scratch sandbox directory 33 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 34 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 35 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 36 | 37 | mkdir /root/bin 38 | cat >> /root/bin/uid-change.sh << 'EOD' 39 | #!/usr/bin/env bash 40 | # script to correct the UID/GID of easybuild user 41 | # in case fakeroot was used 42 | chown -R easybuild:easybuild /app/ 43 | chown -R easybuild:easybuild /home/easybuild/ 44 | chown -R easybuild:easybuild /scratch/ 45 | EOD 46 | chmod u+x /root/bin/uid-change.sh 47 | cat >> /root/eb-envmod.path << 'EOD' 48 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 49 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 50 | @@ -1260,6 +1260,8 @@ 51 | """Interface to environment modules 4.0+""" 52 | NAME = "Environment Modules v4" 53 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 54 | + if not os.path.exists(COMMAND): 55 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 56 | REQ_VERSION = '4.0.0' 57 | MAX_VERSION = None 58 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 59 | EOD 60 | # verbose commands, exit on first error 61 | set -ve 62 | set -o noclobber 63 | 64 | # We set this so if we need to open the container again, we got the environment set up correctly 65 | cat >> /home/easybuild/.bashrc << 'EOG' 66 | export EASYBUILD_PREFIX=/scratch 67 | export EASYBUILD_TMPDIR=/scratch/tmp 68 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 69 | export EASYBUILD_INSTALLPATH=/app 70 | export EASYBUILD_PARALLEL=4 71 | export EB_PYTHON=python3 72 | export MODULEPATH=/app/modules/all 73 | alias eb="eb --robot --download-timeout=1000 --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 74 | EOG 75 | 76 | # configure EasyBuild 77 | cat > /home/easybuild/eb-install.sh << 'EOD' 78 | #!/bin/bash 79 | shopt -s expand_aliases 80 | export EASYBUILD_PREFIX=/scratch 81 | export EASYBUILD_TMPDIR=/scratch/tmp 82 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 83 | export EASYBUILD_INSTALLPATH=/app 84 | export EASYBUILD_PARALLEL=4 85 | export EB_PYTHON=python3 86 | alias eb="eb --robot --download-timeout=1000 --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 87 | EOD 88 | 89 | cat > /home/easybuild/RSEM-1.3.3-foss-2019b.eb << 'EOD' 90 | ## 91 | # This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia 92 | # Homepage: https://staff.flinders.edu.au/research/deep-thought 93 | # 94 | # Authors:: Robert Qiao 95 | # License:: GPLv3.0 96 | # 97 | # Notes:: 98 | ## 99 | 100 | easyblock = 'ConfigureMake' 101 | 102 | name = 'RSEM' 103 | version = '1.3.3' 104 | 105 | homepage = 'https://deweylab.github.io/RSEM/' 106 | description = "RNA-Seq by Expectation-Maximization" 107 | 108 | toolchain = {'name': 'foss', 'version': '2019b'} 109 | toolchainopts = {'openmp': True, 'opt': True} 110 | 111 | source_urls = ['https://github.com/deweylab/RSEM/archive/'] 112 | sources = ['v%(version)s.tar.gz'] 113 | patches = ['RSEM-1.3.0_makefiles.patch'] 114 | checksums = [ 115 | '90e784dd9df8346caa2a7e3ad2ad07649608a51df1c69bfb6e16f45e611a40dc', # v1.3.3.tar.gz 116 | '2d244659206c78655b92f1bd519ee65f28a6b5f9418dfad04e887b64eca6641b', # RSEM-1.3.0_makefiles.patch 117 | ] 118 | 119 | skipsteps = ['configure'] 120 | 121 | installopts = "prefix=%(installdir)s" 122 | 123 | dependencies = [ 124 | ('ncurses', '6.1'), 125 | ('zlib', '1.2.11'), 126 | ('Perl', '5.30.0'), 127 | ('R', '3.6.2'), 128 | ('HISAT2', '2.2.1'), 129 | ('STAR', '2.7.2b'), 130 | ('Bowtie2', '2.3.5.1'), 131 | ('Bowtie', '1.2.3'), 132 | ] 133 | 134 | sanity_check_paths = { 135 | 'files': ['bin/rsem-calculate-expression', 'bin/rsem-plot-model', 'bin/rsem-plot-transcript-wiggles', 136 | 'bin/rsem-bam2wig', 'bin/rsem-generate-data-matrix', 'bin/rsem-run-em', 'bin/convert-sam-for-rsem'], 137 | 'dirs': ['bin/samtools-1.3'], 138 | } 139 | 140 | moduleclass = 'bio' 141 | EOD 142 | echo "eb --fetch /home/easybuild/RSEM-1.3.3-foss-2019b.eb" >> /home/easybuild/eb-install.sh 143 | echo "eb /home/easybuild/RSEM-1.3.3-foss-2019b.eb" >> /home/easybuild/eb-install.sh 144 | echo "eb --fetch RSEM-1.3.3-foss-2019b.eb" >> /home/easybuild/eb-install.sh 145 | echo "eb RSEM-1.3.3-foss-2019b.eb" >> /home/easybuild/eb-install.sh 146 | chmod a+x /home/easybuild/eb-install.sh 147 | 148 | #su -l easybuild -c /home/easybuild/eb-install.sh 149 | 150 | # cleanup, everything in /scratch is assumed to be temporary 151 | rm -rf /scratch/* 152 | 153 | %runscript 154 | eval "$@" 155 | 156 | %environment 157 | # make sure that 'module' and 'ml' commands are defined 158 | source /etc/profile 159 | # purge any modules that may be loaded outside container 160 | unset LOADEDMODULES 161 | unset _LMFILES_ 162 | # avoid picking up modules from outside of container 163 | module unuse $MODULEPATH 164 | # pick up modules installed in /app 165 | module use /app/modules/all 166 | # load module(s) corresponding to installed software 167 | module load RSEM/1.3.3-foss-2019b 168 | 169 | %labels 170 | Author J. Sassmannshausen 171 | RSEM-1.3.3-foss-2019b 172 | -------------------------------------------------------------------------------- /definitions/mirtk/Singularity.mirtk-2.0.0-foss-2020a-Python-3.8.2-envmod-centos7: -------------------------------------------------------------------------------- 1 | Bootstrap: yum 2 | OSVersion: 7 3 | MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/ 4 | Include: yum 5 | 6 | %post 7 | yum --assumeyes update 8 | yum install --quiet --assumeyes epel-release 9 | yum install --quiet --assumeyes python setuptools environment-modules 10 | yum install --quiet --assumeyes python-pip 11 | yum install --quiet --assumeyes bzip2 gzip tar zip unzip xz 12 | yum install --quiet --assumeyes curl wget 13 | yum install --quiet --assumeyes patch make 14 | yum install --quiet --assumeyes file git which 15 | yum install --quiet --assumeyes gcc-c++ 16 | yum install --quiet --assumeyes perl-Data-Dumper 17 | yum install --quiet --assumeyes perl-Thread-Queue 18 | yum install --quiet --assumeyes libibverbs-dev libibverbs-devel rdma-core-devel 19 | yum install --quiet --assumeyes openssl-devel libssl-dev libopenssl-devel openssl 20 | 21 | # This is only needed due to a current bug in SuiteSparse-5.7.1-foss-2020a-METIS-5.1.0.eb 22 | yum install --quiet --assumeyes m4 23 | 24 | # install EasyBuild using pip 25 | pip install -U pip 26 | pip install wheel 27 | pip install -U setuptools 28 | pip install 'vsc-install<0.11.4' 'vsc-base<2.9.0' 29 | pip install easybuild 30 | 31 | # create 'easybuild' user (if missing) 32 | id easybuild || useradd easybuild 33 | 34 | # create /app software installation prefix + /scratch sandbox directory 35 | if [ ! -d /app ]; then mkdir -p /app; chown easybuild:easybuild -R /app; fi 36 | if [ ! -d /scratch ]; then mkdir -p /scratch; chown easybuild:easybuild -R /scratch; fi 37 | if [ ! -d /home/easybuild ]; then mkdir -p /home/easybuild; chown easybuild:easybuild -R /home/easybuild;fi 38 | 39 | # verbose commands, exit on first error 40 | set -ve 41 | set -o noclobber 42 | cat > /home/easybuild/mitk-2.0.0-foss-2020a-Python-3.8.2.eb << 'EOD' 43 | easyblock = 'CMakeMake' 44 | name = 'MIRTK' 45 | version = '2.0.0' 46 | versionsuffix = '-Python-3.8.2' 47 | homepage = 'https://mirtk.github.io' 48 | description = """The MIRTK is a research-focused image processing toolkit, 49 | developed at the BioMedIA research group. It provides a collection of libraries 50 | and command-line tools to assist in processing and analyzing imaging data. The 51 | main application of the MIRTK is in adult and neonatal brain MR image 52 | registration as well as the reconstruction of cortical surface meshes. 53 | The modular project organization of the MIRTK enables the installation of selected modules.""" 54 | toolchain = {'name': 'foss', 'version': '2020a'} 55 | source_urls = ['https://github.com/BioMedIA/MIRTK/archive/'] 56 | sources = ['v%(version)s.tar.gz'] 57 | checksums = [ 58 | '98a27bc8d1b9ee1bab6c1aea21932b2c29b838d97de3bc9536cccabb27c2f8e5', # v2.0.0.tar.gz 59 | 'c8ca975d181e8a06e5ad2cd5947086eb8a7d1c53e52e017d7ae277b48b0914f1', # arpack.patch for this file only 60 | ] 61 | builddependencies = [ 62 | ('CMake', '3.16.4'), 63 | ('Eigen', '3.3.7', '', True), 64 | ('Boost', '1.72.0'), 65 | ('Perl', '5.30.2'), 66 | ] 67 | dependencies = [ 68 | ('VTK', '8.2.0', '-Python-3.8.2'), 69 | ('tbb', '2020.2'), 70 | ('arpack-ng', '3.7.0'), 71 | ('METIS', '5.1.0'), 72 | ('SuiteSparse', '5.7.1', '-METIS-5.1.0'), 73 | ] 74 | patches = ['arpack.patch'] 75 | parallel = 1 76 | build_type = 'Release' 77 | separate_build_dir = True 78 | configopts = '-DWITH_VTK=ON -DWITH_PNG=ON -DWITH_ARPACK=ON \ 79 | -DWITH_ZLIB=ON -DWITH_PNG=ON -DWITH_PROFILING=ON -DWITH_NiftiCLib=ON \ 80 | -DWITH_FLANN=ON -DWITH_ARPACK=ON -DWITH_TBB=ON \ 81 | -DCMAKE_SYSTEM_LIBRARY_PATH="${LIBRARY_PATH//:/;}"' 82 | build_cmd = 'cd %(builddir)s/easybuild_obj/Applications/src/CMakeFiles && \ 83 | for i in $(find ./ -iname link.txt); do sed -E -i.bac \ 84 | "s/easybuild_obj\/lib:/easybuild_obj\/lib: -lcholmod/" $i; done && \ 85 | cd %(builddir)s/easybuild_obj/ && make ' 86 | sanity_check_paths = { 87 | 'files': ['bin/mirtk', 'bin/uninstall-mirtk'], 88 | 'dirs': ['bin', 'include', 'lib', 'share'], 89 | } 90 | moduleclass = 'bio' 91 | EOD 92 | cat > /home/easybuild/arpack.patch << 'EOD' 93 | diff -Nru MIRTK-2.0.0.orig/CMake/Modules/FindARPACK.cmake MIRTK-2.0.0/CMake/Modules/FindARPACK.cmake 94 | --- MIRTK-2.0.0.orig/CMake/Modules/FindARPACK.cmake 2018-04-08 21:57:47.000000000 +0000 95 | +++ MIRTK-2.0.0/CMake/Modules/FindARPACK.cmake 2020-06-12 10:26:39.694996672 +0000 96 | @@ -1,5 +1,5 @@ 97 | find_library(ARPACK_LIBRARY 98 | - NAMES parpack arpack 99 | + NAMES arpack parpack 100 | PATHS ${ARPACK_DIR}/lib 101 | ) 102 | EOD 103 | 104 | # We set this so if we need to open the container again, we got the environment set up correctly 105 | cat >> /home/easybuild/.bashrc << 'EOG' 106 | export EASYBUILD_PREFIX=/scratch 107 | export EASYBUILD_TMPDIR=/scratch/tmp 108 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 109 | export EASYBUILD_INSTALLPATH=/app 110 | export EASYBUILD_PARALLEL=4 111 | export MODULEPATH=/app/modules/all 112 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 113 | EOG 114 | 115 | # configure EasyBuild 116 | cat > /home/easybuild/eb-install.sh << 'EOD' 117 | #!/bin/bash 118 | shopt -s expand_aliases 119 | export EASYBUILD_PREFIX=/scratch 120 | export EASYBUILD_TMPDIR=/scratch/tmp 121 | export EASYBUILD_SOURCEPATH=/scratch/sources:/tmp/easybuild/sources 122 | export EASYBUILD_INSTALLPATH=/app 123 | export EASYBUILD_PARALLEL=4 124 | alias eb="eb --robot --modules-tool=EnvironmentModulesC --module-syntax=Tcl --download-timeout=1000" 125 | EOD 126 | echo "eb --try-toolchain=GCCcore,9.3.0 tbb-2020.2-GCCcore-8.3.0.eb" >> /home/easybuild/eb-install.sh 127 | echo "eb --try-toolchain=foss,2020a arpack-ng-3.7.0-foss-2019b.eb" >> /home/easybuild/eb-install.sh 128 | echo "eb --fetch /home/easybuild/mitk-2.0.0-foss-2020a-Python-3.8.2.eb" >> /home/easybuild/eb-install.sh 129 | echo "eb /home/easybuild/mitk-2.0.0-foss-2020a-Python-3.8.2.eb" >> /home/easybuild/eb-install.sh 130 | 131 | chmod a+x /home/easybuild/eb-install.sh 132 | 133 | # su -l easybuild -c /home/easybuild/eb-install.sh 134 | 135 | # cleanup, everything in /scratch is assumed to be temporary 136 | # rm -rf /scratch/* 137 | 138 | %runscript 139 | eval "$@" 140 | 141 | %environment 142 | # make sure that 'module' is defined 143 | source /etc/profile 144 | # purge any modules that may be loaded outside container 145 | unset LOADEDMODULES 146 | unset _LMFILES_ 147 | # avoid picking up modules from outside of container 148 | module unuse $MODULEPATH 149 | # pick up modules installed in /app 150 | module use /app/modules/all 151 | # load module(s) corresponding to installed software 152 | module load MIRTK/2.0.0-foss-2020a-Python-3.8.2 153 | 154 | %labels 155 | Author J. Sassmannshausen 156 | MIRTK-2.0.0-foss-2020a-Python-3.8.2 157 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Singularity-Easybuild 2 | Description: 3 | ----------- 4 | Collection of Singularity definition files and scripts to create them for popular Linux Distributions like Debian (Buster, Bullseye and Bookworm), Centos (7), and Rocky (8.5 and latest). 5 | 6 | The definitions folder contains the successful Singularity Definition files, tested with version 3.5.3, 3.7.1, and CE-3.8.4 from Singularity, next to Apptainer/Singularity 3.8.5 , whereas the scripts folder contains the scripts to create the Singularity definition files which are based on EasyBuild. This version is using EasyBuild version 4.5.3. 7 | 8 | Requirements: 9 | ------------ 10 | You will need to have a Linux environment and Singularity installed in it. 11 | If you don't have Linux, please use Vagrant to set up a virtual Linux environment. 12 | 13 | Please note: we noticed that Singularity version 3.8.x seems to have problems with the container internal `envmod` but it is working fine for the internal `lmod`. We are working on the issue so if you want to use `envmod` inside the container, for now we recommend to use Singularity version 3.7.x. 14 | 15 | The minimum requirement for `bash` is version 4.x. If you are on MacOS, please use `homebrew` to install `bash` from there. 16 | 17 | Furthermore, if you want to build the containers, you either need to have `fakeroot` installed and configured so it can be used as normal user, or have `sudo` installed. The latter is required if you want to open up containers and re-build them again. 18 | 19 | As the software inside the containers is built using Easybuild, you will need to know the names of the Easybuild Configuration files, e.g. GCC-9.3.0.eb. 20 | Thus, it is probably best to install the easybuild-easyconfig files like this in a separate folder: 21 | 22 | $ git clone https://github.com/easybuilders/easybuild-easyconfigs.git 23 | 24 | and search the easybuild/easyconfigs folder for the name of the EasyBuild Configuration files you want to use. You only need the name, not the content of the file. 25 | 26 | The version of EasyBuild is now fixed with this release. If you require a specific version, simply change inside the Singularity definition file this line: 27 | 28 | ``` 29 | pip3 install easybuild==4.5.2 30 | ``` 31 | 32 | to this line: 33 | 34 | ``` 35 | pip3 install easybuild 36 | ``` 37 | 38 | which will install the latest EasyBuild version. 39 | 40 | ## Depreciated versions: 41 | 42 | As `Python2` is depreciated, the containers are using the `Python3` version for as their default system version. Note: This is different from the Python versions EasyBuild will install and should not be mixed up. 43 | 44 | As CentOS-8 is now end of life we are currently no longer supporting this version. We suggest to switch to Rocky-8 instead. 45 | 46 | Usage: 47 | ----- 48 | Using the scripts is simple. Go into the `scripts` folder and run the installation script `install.sh` This will *either* install the scripts in your `~/bin` folder as sym-links, or create the sym-links in the folder where you are running the script from. We advice you to install the script in the `~/bin` folder so they are in your `PATH` environment. If you don't want to do this, we recommend to install the sym-links in a different folder from where you have downloaded the GitHub files from. Please note the usage of sym-links. Thus, if you do any changes in the folder where you downloaded the GitHub repository to, these changes will be carried over. If, for example, you were to delete that folder, the installation is broken. 49 | 50 | During the installation, you will given a number of choices regarding whether you want to *build* or *create* the definition files, which Linux distribution and version you want to use and if you want to use Lmod or the environment-module system. 51 | 52 | You can then execute for example, assuming the links are in your `PATH` environment: 53 | 54 | $ container-create-debian11-envmodules.sh GCC-9.3.0.eb 55 | 56 | You can supply a second script as well, which could be one you have created. This script will be 57 | read into the Singularity Build file. So in our example we would get a file called `Singularity.GCC-9.3.0-envmod-debian11`. 58 | 59 | If you want to build the container and additionally a sandbox, you could use this instead: 60 | 61 | ``` 62 | $ container-build-debian11-envmodules.sh GCC-9.3.0.eb 63 | ``` 64 | 65 | So in our example we would get a file called `Singularity.GCC-9.3.0-envmod-debian11`, next to the Singularity container called `GCC-9.3.0-envmod-debian11.sif` 66 | 67 | If you don't want to or cannot use the automatic build process, you can build the container like this: 68 | 69 | $ sudo singularity build GCC-9.3.0-envmod-debian10.sif Singularity.GCC-9.3.0-envmod-debian10 70 | 71 | Equally, if you want to install software on top of the existing container manually, simply do: 72 | 73 | ```bash 74 | $ sudo singularity build --sandbox GCC-9.3.0-envmod-debian10.sif Singularity.GCC-9.3.0-envmod-debian10 75 | ``` 76 | 77 | See the example below for a complete build of R-4.0.0 in two steps: We first build the toolchain container (foss-2020a) and inside the container we build R-4.0.0. This approach allows us to create our own complete environment for building complete pipelines as well. 78 | 79 | If you want to have your name and email address included in the Singularity definition file, just create this file: 80 | 81 | ```bash 82 | ~/.singularity/sing-eb.conf 83 | ``` 84 | 85 | An empty file will mean these values are not included in the Singularity definition file. If you want to include your name and email address, simply add it. Likewise, you can pin the version of EasyBuild you want to use, like 4.4.0 in this example: 86 | 87 | name="Your Name" 88 | email="email@address" 89 | eb_version="EasyBuild-version" 90 | 91 | and replace "Your Name" and "email@address" and the "EasyBuild-version" you want to use accordingly. 92 | 93 | 94 | Example build: 95 | ------------- 96 | This would be the complete sequence to build a container with the FOSS-2020a tool chain from EasyBuild, unpack the container and build for example R-4.0.0 inside the container. Of course you could to that all in one go as well. We are using the CentOS7 OS in this example: 97 | 98 | We first create the Singularity Definition File. As we don't need to add a separate EasyBuild configuration file we say 'n' here: 99 | 100 | ```bash 101 | $ container-create-centos8-envmodules.sh foss-2020a.eb 102 | ``` 103 | Do we need a second Easybuild recipe (y/N)?: n 104 | 105 | $ ls 106 | Singularity.foss-2020a-centos-8-envmod 107 | 108 | We now build the Singularity container. Note that the command 'singularity' needs to be in the 109 | PATH of root: 110 | 111 | $ sudo singularity build foss-2020a-centos-8-envmod.sif Singularity.foss-2020a-centos-8-envmod 112 | 113 | $ ls 114 | Singularity.foss-2020a-envmod-centos7 foss-2020a-envmod-centos7.sif 115 | 116 | Now that we got a container, we can unpack it so we can add software to it. 117 | First we unpack: 118 | 119 | $ sudo singularity build --sandbox foss-2020a-centos-8-envmod foss-2020a-centos-8-envmod.sif 120 | $ ls 121 | Singularity.foss-2020a-centos-8-envmod foss-2020a-centos-8-envmod.sif foss-2020a-centos-8-envmod 122 | 123 | Now we enter the container. The '-w' flag means we can write to the pseudo-chroot environment: 124 | 125 | ```bash 126 | $ sudo singularity shell -w foss-2020a-centos-8-envmod 127 | ``` 128 | 129 | We become the easybuild user and install the software. We first fetch all the source files. This 130 | is sometimes a problem due to flaky Internet connections. We then, in a second step, build the 131 | software. This step can take some time but is done fully automatic. Once build, we exit the 132 | container again: 133 | 134 | ```bash 135 | # su -l easybuild 136 | [easybuild]$ eb --fetch R-4.0.0-foss-2020a.eb 137 | [easybuild]$ eb R-4.0.0-foss-2020a.eb 138 | [easybuild]$ exit 139 | # exit 140 | ``` 141 | 142 | One step we need to do here as root is, to change the environment file so the new module will be loaded. This will be towards the bottom of this file: 143 | 144 | ```bash 145 | $ sudo vi foss-2020a-centos-8-envmod/environment 146 | ``` 147 | 148 | Finally, we build the Singularity container: 149 | 150 | ```bash 151 | $ sudo singularity build R-4.0.0-foss-2020a-centos-8-envmod .sif foss-2020a-centos-8-envmod 152 | 153 | $ ls 154 | Singularity.foss-2020a-centos-8-envmod foss-2020a-centos-8-envmod .sif foss-2020a-centos-8-envmod R-4.0.0-foss-2020a-centos-8-envmod .sif 155 | ``` 156 | 157 | Now you can run R-4.0.0 on a different system like this: 158 | 159 | ```bash 160 | $ singularity exec R-4.0.0-foss-2020a-centos-8-envmod.sif R 161 | R> 162 | ``` 163 | 164 | We have introduced a more automated way of building containers. Thus, instead of doing all of the steps above manually, let the computer do it for you. Instead of using a 'create' script, we are simply using a 'build' script, like this for example: 165 | 166 | ```bash 167 | $ container-build-centos8-envmodules.sh foss-2020a.eb 168 | ``` 169 | 170 | You will be asked whether or not to build the sandbox in the same run. 171 | 172 | We would recommend to build a generic container like `foss-2020b` for example and then use the provided sandbox to add software to it. 173 | 174 | For more details about what you can do with Singularity please refer to their home page. 175 | 176 | 177 | Acknowledgement: 178 | --------------- 179 | This work would not be possible without EasyBuild, I am greateful to the project and the community for their help. 180 | 181 | Links: 182 | ----- 183 | Singularity: https://sylabs.io/guides/3.8/admin-guide/installation.html 184 | (Source: https://github.com/sylabs/singularity/releases) 185 | 186 | Apptainer: http://apptainer.org/ 187 | (Source: https://github.com/apptainer/singularity) 188 | 189 | Vagrant: https://www.vagrantup.com/intro/getting-started 190 | Easybuild: https://easybuild.readthedocs.io/en/latest 191 | 192 | Updated: 11.3.2022 193 | -------------------------------------------------------------------------------- /scripts/singularity-definition.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Script to build a Singularity build file and builds the container 3 | # all in one go. The only thing we need to know is the name of the 4 | # EasyBuild build file. 5 | # We are using Python3 here instead of the no longer supported Python2 6 | 7 | # We define some variables first: 8 | os_python=3 9 | change="n" 10 | 11 | # Which version of EasyBuild are we installing? 12 | ebversion="4.5.3" 13 | 14 | # Where is the script located? 15 | basedir="$(dirname $(readlink -f "$0"))" 16 | 17 | IFS='-' read -ra ITEM <<<"${0%.sh}" 18 | for i in "${ITEM[@]}"; do 19 | case ${i} in 20 | ubuntu20.04 ) 21 | distro="ubuntu" 22 | export distro_version="focal" 23 | ;; 24 | debian12 ) 25 | distro="debian" 26 | export distro_version="bookworm" 27 | ;; 28 | debian11 ) 29 | distro="debian" 30 | export distro_version="bullseye" 31 | ;; 32 | debian10 ) 33 | distro="debian" 34 | export distro_version="buster" 35 | ;; 36 | debian9 ) 37 | distro="debian" 38 | # Debian Stretch is EOL, so we drop the support for it here: 39 | echo "Debian Stretch is end of life and as such no longer supported." 40 | echo "Please use one of the newer versions." 41 | echo "We are stopping here." 42 | exit 2 43 | ;; 44 | centos8 ) 45 | distro="centos" 46 | export distro_version="8" 47 | echo "CentOS-8 is end of life and as such no longer supported." 48 | echo "We suggest to use the Rocky project instead." 49 | echo "We are stopping here." 50 | exit 2 51 | ;; 52 | centos7 ) 53 | distro="centos" 54 | export distro_version="7" 55 | ;; 56 | rocky8 ) 57 | distro="rocky" 58 | export distro_version="8" 59 | ;; 60 | rocky8.5 ) 61 | distro="rocky" 62 | export distro_version="8.5" 63 | ;; 64 | 65 | envmodules ) 66 | export mod="envmod" # This is only a shorthand, the actual package will be set further down! 67 | export env_lang=" --modules-tool=EnvironmentModules --module-syntax=Tcl" 68 | ;; 69 | lmod ) 70 | export mod="lmod" 71 | export env_lang="" 72 | ;; 73 | build ) 74 | oper=build 75 | ;; 76 | create ) 77 | oper=create 78 | ;; 79 | python2 ) 80 | os_python=2 81 | ;; 82 | esac 83 | 84 | done 85 | 86 | # As the Singularity definition file contains information like for the author and email address, 87 | # both of which are optional, but also the used EasyBuild version. We check if the config file exists. 88 | # We make use of the .singularity directory and look for the config file 89 | # sing-eb.conf there 90 | 91 | if [ -f ~/.singularity/sing-eb.conf ]; then 92 | . ~/.singularity/sing-eb.conf 93 | else 94 | echo "The Singularity definition file ~/.singularity/sing-eb.conf does not exist." 95 | echo "Please use this file to set the author and email address which is used in the Singularity definition file." 96 | echo "The file can also be used to specify the used version of EasyBuild, rather than just the latest one." 97 | echo "As it is not set, we define it here as version 4.4.0, the latest for this release." 98 | echo "The use of this is optional." 99 | echo "The syntax is:" 100 | echo 'author="YOUR NAME"' 101 | echo 'email="EMAIL ADDRESS"' 102 | echo 'eb_version="4.4.1"' 103 | author='' 104 | email='' 105 | export eb_version=${ebversion} 106 | fi 107 | 108 | # We need to double check if the version was set correctly. 109 | 110 | if [ -z ${eb_version} ]; then 111 | echo 112 | echo "The version of EasyBuld was not set in your ~/.singularity/sing-eb.conf file." 113 | echo "Thus, we set it to the latest version which is ${ebversion}" 114 | echo 115 | export eb_version=${ebversion} 116 | fi 117 | 118 | # We need to know the name of the Easybuild build file: 119 | if [ ! -z "$1" ]; then 120 | eb_file="$1" 121 | else 122 | read -p 'Easybuild recipe: ' eb_file 123 | fi 124 | 125 | # Sometimes we need to provide a Easybuild build file, for example as checksums 126 | # have changed 127 | if [ ! -z "$2" ]; then 128 | eb_file2="$2" 129 | else 130 | read -p 'Do we need a second Easybuild recipe (y/N)?: ' eb_file2 131 | fi 132 | 133 | # We check if we provided y/n. If explicit no in the line, we unset the variable eb_file2. 134 | # At this stage, the variable should contain something. 135 | # If it happens to be empty, we catch that further down 136 | case ${eb_file2} in 137 | y|yes|Y|Yes ) 138 | read -p 'Easybuild recipe: ' eb_file2 139 | if [ ! -f "$eb_file2" ]; then 140 | echo "The file does not exist! Please place the correct build file in the current directory!" 141 | exit 2 142 | fi 143 | ;; 144 | n|no|N|No ) 145 | eb_file2="" 146 | echo "No second Easybuild recipe was provided" 147 | ;; 148 | esac 149 | 150 | # Some definitions 151 | filename=Singularity."${eb_file%.eb}-${distro}-${distro_version}-${mod}" 152 | 153 | # we are creating the singularity definition file 154 | # This is for Debian 155 | if [ ${distro} == "debian" ]; then 156 | export distro_url="http://httpredir.debian.org/debian" 157 | if [ ${mod} == "envmod" ]; then export mod="environment-modules tcl"; change="y"; fi 158 | envsubst '${mod},${distro_url},${distro_version}' < "$basedir"/debian-template.tmpl > ${filename} 159 | if [ ${change} == "y" ]; then export mod="envmod"; fi 160 | fi 161 | 162 | # This is for Ubuntu 163 | if [ ${distro} == "ubuntu" ]; then 164 | export distro_url="http://archive.ubuntu.com/ubuntu/" 165 | if [ ${mod} == "envmod" ]; then export mod="environment-modules tcl"; change="y"; fi 166 | envsubst '${mod},${distro_url},${distro_version}' < "$basedir"/debian-template.tmpl > ${filename} 167 | sed -i "/%post/a \sed -i 's\/main\/main\ universe\/' \/etc\/apt\/sources.list" ${filename} 168 | if [ ${change} == "y" ]; then export mod="envmod"; fi 169 | fi 170 | 171 | # This is for CentOS. Here we need to change the names of the environment modules a bit 172 | if [ ${distro} == "centos" ]; then 173 | if [ ${mod} == "envmod" ]; then 174 | export src_path="/etc/profile.d/modules.sh" 175 | export mod="environment-modules" 176 | fi 177 | if [ ${mod} == "lmod" ]; then 178 | export src_path="/usr/share/lmod/lmod/init/profile" 179 | export mod="Lmod" 180 | fi 181 | # There are some differences in the way CentOS7 is doing things from CentOS8 182 | # As we are using one template file, we do the changes here 183 | # CentOS-8 is no longer supported and all attempts to get it from the archive working failed. 184 | # For now we leave it in here for reference with the aim to get it maybe working at one point 185 | # together with CentOS-9. Maybe. 186 | if [ ${distro_version} == "8" ]; then 187 | export distro_url="http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/BaseOS/x86_64/os" 188 | envsubst '${mod},${distro_url},${distro_version}' < "$basedir"/centos-template.tmpl > ${filename} 189 | sed -i "/epel-release/a \ 190 | # This is needed for the change to CentOS8 \n\ 191 | yum install --quiet --assumeyes dnf-plugins-core \n\ 192 | dnf config-manager --set-enabled powertools " ${filename} 193 | fi 194 | if [ ${distro_version} == "7" ]; then 195 | export distro_url="http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64/" 196 | envsubst '${mod},${distro_url},${distro_version}' < "$basedir"/centos-template.tmpl > ${filename} 197 | sed -i "s/Lmod/setuptools Lmod /" ${filename} 198 | fi 199 | # we need to reset the names for the modules 200 | if [ ${mod} == "environment-modules" ]; then export mod="envmod"; fi 201 | if [ ${mod} == "Lmod" ]; then export mod="lmod"; fi 202 | fi 203 | 204 | # This is for Rocky. The current version 8 is based on CentOS8, so we use most of that again 205 | if [ ${distro} == "rocky" ]; then 206 | if [ ${mod} == "envmod" ]; then 207 | export mod="environment-modules" 208 | export src_path="/etc/profile.d/modules.sh" 209 | fi 210 | if [ ${mod} == "lmod" ]; then 211 | export mod="Lmod" 212 | export src_path="/usr/share/lmod/lmod/init/profile" 213 | fi 214 | # As we are using Rocky, which is based on CentOS8, we need to heed this too: 215 | # There are some differences in the way CentOS7 is doing things from CentOS8 216 | # As we are using one template file, we do the changes here 217 | if [ ${distro_version%.*} == "8" ]; then 218 | export distro_url="https://dl.rockylinux.org/pub/rocky/%{OSVERSION}/BaseOS/x86_64/os/" 219 | envsubst '${mod},${distro_url},${distro_version}' < "$basedir"/centos-template.tmpl > ${filename} 220 | sed -i "/epel-release/a \ 221 | # This is needed for the change to CentOS8 which we need in Rocky8 too\n\ 222 | yum install --quiet --assumeyes dnf-plugins-core \n\ 223 | dnf config-manager --set-enabled powertools " ${filename} 224 | fi 225 | # we need to reset the names for the modules 226 | if [ ${mod} == "environment-modules" ]; then export mod="envmod"; fi 227 | if [ ${mod} == "Lmod" ]; then export mod="lmod"; fi 228 | fi 229 | 230 | # Now we can install EasyBuild 231 | envsubst '${eb_version}' < "$basedir"/easybuild-install.tmpl >> ${filename} 232 | 233 | # Now we change the easybuild user for Debian or Ubuntu 234 | if [ ${distro} == "ubuntu" ] || [ ${distro} == "debian" ]; then 235 | sed -i "s/useradd/useradd -s \/bin\/bash -m/" ${filename} 236 | fi 237 | 238 | # If we are using fakeroot to build, the UID/GID are wrong for the user easybuild. 239 | # We simply add a little script to the root's bin directory to take care of that 240 | cat >> ${filename} << 'EOF' 241 | mkdir /root/bin 242 | cat >> /root/bin/uid-change.sh << 'EOD' 243 | #!/usr/bin/env bash 244 | # script to correct the UID/GID of easybuild user 245 | # in case fakeroot was used 246 | chown -R easybuild:easybuild /app/ 247 | chown -R easybuild:easybuild /home/easybuild/ 248 | chown -R easybuild:easybuild /scratch/ 249 | EOD 250 | chmod u+x /root/bin/uid-change.sh 251 | EOF 252 | 253 | # For Lmod and environment modules we need to add a few things: 254 | # This is for Lmod 255 | if [ ${mod} == "lmod" ]; then 256 | cat >> ${filename} << EOF 257 | # install Lmod RC file 258 | cat > /etc/lmodrc.lua << EOD 259 | scDescriptT = { 260 | { 261 | ["dir"] = "/app/lmodcache", 262 | ["timestamp"] = "/app/lmodcache/timestamp", 263 | }, 264 | } 265 | EOD 266 | EOF 267 | fi 268 | 269 | # This is for environment modules < 4.1.x 270 | # This is new for EasyBuild 4.4.2 271 | # See https://github.com/easybuilders/easybuild-framework/pull/3816 272 | if [ ${mod} == "envmod" ]; then 273 | if [ ${distro_version} == "stretch" ] ; then 274 | cat >> ${filename} << EOF 275 | cat >> /root/eb-envmod.path << 'EOD' 276 | --- modules.py.orig 2020-06-09 14:06:45.709906123 +0100 277 | +++ modules.py 2020-06-09 14:04:19.239060817 +0100 278 | @@ -1260,6 +1260,8 @@ 279 | """Interface to environment modules 4.0+""" 280 | NAME = "Environment Modules v4" 281 | COMMAND = os.path.join(os.getenv('MODULESHOME', 'MODULESHOME_NOT_DEFINED'), 'libexec', 'modulecmd.tcl') 282 | + if not os.path.exists(COMMAND): 283 | + COMMAND = os.getenv('MODULES_CMD', 'MODULES_CMD_NOT_DEFINED') 284 | REQ_VERSION = '4.0.0' 285 | MAX_VERSION = None 286 | VERSION_REGEXP = r'^Modules\s+Release\s+(?P\d\S*)\s' 287 | EOD 288 | EOF 289 | fi 290 | 291 | case ${distro_version} in 292 | stretch ) 293 | echo "patch -d /usr/local/lib/python3.5/dist-packages/easybuild/tools -p0 < /root/eb-envmod.path" >> ${filename} 294 | # Debian stretch is using environment module 3, so we need to do this: 295 | export env_lang=" --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 296 | ;; 297 | bookworm ) 298 | # Debian bookworm seems to need that: 299 | export env_lang=" --modules-tool=EnvironmentModules --module-syntax=Tcl --allow-modules-tool-mismatch" 300 | ;; 301 | # This is for CentOS 302 | 7 ) 303 | export env_lang=" --modules-tool=EnvironmentModulesC --module-syntax=Tcl" 304 | ;; 305 | 8 | 8.5 ) 306 | # Centos8 and Rocky8 seem to use Python-3.6.x 307 | export env_lang=" --modules-tool=EnvironmentModules --module-syntax=Tcl --allow-modules-tool-mismatch" 308 | ;; 309 | esac 310 | fi 311 | 312 | # Now we can read in the generic EasyBuild block 313 | envsubst '${env_lang}' < "$basedir"/easybuild-template.tmpl >> ${filename} 314 | 315 | # We check if we require another build file, as for example the checksum is incorrect 316 | # In this case, we correct the build file and add it here 317 | if [ ! -z ${eb_file2} ]; then 318 | echo "cat > /home/easybuild/${eb_file2} << 'EOD'" >> ${filename} 319 | cat ${eb_file2} >> ${filename} 320 | echo "EOD" >> ${filename} 321 | # If there is another build file, we add it before the main one 322 | cat >> ${filename} << EOF 323 | echo "eb --fetch /home/easybuild/$eb_file2" >> /home/easybuild/eb-install.sh 324 | echo "eb /home/easybuild/$eb_file2" >> /home/easybuild/eb-install.sh 325 | EOF 326 | fi 327 | 328 | # We are adding the normal build file to the Singularity script 329 | # We need to do it this way as we need to replace the variable 330 | cat >> ${filename} << EOF 331 | echo "eb --fetch ${eb_file}" >> /home/easybuild/eb-install.sh 332 | echo "eb ${eb_file}" >> /home/easybuild/eb-install.sh 333 | EOF 334 | 335 | # Again, some stuff specific to lmod: 336 | if [ ${mod} == "lmod" ]; then 337 | cat >> ${filename} << 'EOF' 338 | cat >> /home/easybuild/eb-install.sh << 'EOD' 339 | mkdir -p /app/lmodcache 340 | $LMOD_DIR/update_lmod_system_cache_files -d /app/lmodcache -t /app/lmodcache/timestamp /app/modules/all 341 | EOD 342 | EOF 343 | fi 344 | 345 | case ${distro} in 346 | ubuntu|debian ) 347 | export src_cmd="." 348 | export src_path="/etc/profile" 349 | ;; 350 | centos|rocky ) 351 | export src_cmd="source" 352 | # the src_path is already set further up in the script, in the relevant CentOS/Rock section 353 | ;; 354 | esac 355 | 356 | case ${mod} in 357 | lmod ) 358 | export lmod_cache="export LMOD_SHORT_TIME=86400" 359 | export module_clean1="module --force purge" 360 | export module_clean2="" 361 | ;; 362 | envmod ) 363 | export lmod_cache="" 364 | export module_clean1="unset LOADEDMODULES" 365 | export module_clean2="unset _LMFILES_" 366 | ;; 367 | esac 368 | 369 | # Now we can add the script which is running EasyBuild and does some of the 370 | # post installation 371 | envsubst '${src_cmd},${src_path},${lmod_cache},${module_clean1},${module_clean2}' < "$basedir"/easybuild-run.tmpl >> ${filename} 372 | 373 | # This is apparently needed for Ubuntu: 374 | if [ ${distro} == "ubuntu" ]; then 375 | echo "# this seems to be needed to make sure the terminal is working:" >> ${filename} 376 | echo "export TERM=xterm-256color" >> ${filename} 377 | fi 378 | 379 | # Now we finish off the Singularity definition file: 380 | echo "# load module(s) corresponding to installed software" >> ${filename} 381 | 382 | mod1=$(echo "$eb_file" | cut -d '-' -f 1 ) 383 | mod2=$(echo "${eb_file%.eb}" | cut -d '-' -f 2- ) 384 | module_name="$mod1/$mod2" 385 | echo "module load $module_name " >> ${filename} 386 | echo " " >> ${filename} 387 | echo "%labels" >> ${filename} 388 | if [ ! -z "${author}" ] && [ ! -z ${email} ]; then 389 | echo "Author ${author} <${email}>" >> ${filename} 390 | fi 391 | echo "EasyBuild-version ${eb_version}" >> ${filename} 392 | echo "EasyConfig-file ${eb_file}" >> ${filename} 393 | 394 | if [ ${oper} == "build" ] && [ -e "$basedir"/container-build.sh ]; then 395 | echo "We are now building the container. Buckle up." 396 | "$basedir"/container-build.sh ${filename} 397 | else 398 | echo "The Singularity definition file ${filename} has been created." 399 | echo "You can now either build a Singularity Image File, or a Sandbox on a different machine if you like." 400 | echo "You can use the script ${basedir}/container-build.sh for that if you want to." 401 | fi 402 | 403 | # End 404 | 405 | --------------------------------------------------------------------------------