diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb index 0ff99e5dcfa..1f2620e9f2c 100644 --- a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb +++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb @@ -23,10 +23,18 @@ toolchainopts = {'pic': True, 'cstd': 'c++98'} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -patches = ['AMOS-%(version)s_GCC-4.7.patch'] +patches = [ + 'AMOS-%(version)s_GCC-4.7.patch', + 'AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch', + 'AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch', +] checksums = [ - '2d9f50e39186ad3dde3d3b28cc265e8d632430657f40fc3978ce34ab1b3db43b', # amos-3.1.0.tar.gz - '8633ff196568e208cc12932f25f46fa35f7e9a9e80e0bbf4288ae070dd7b8844', # AMOS-3.1.0_GCC-4.7.patch + {'amos-3.1.0.tar.gz': '2d9f50e39186ad3dde3d3b28cc265e8d632430657f40fc3978ce34ab1b3db43b'}, + {'AMOS-3.1.0_GCC-4.7.patch': '8633ff196568e208cc12932f25f46fa35f7e9a9e80e0bbf4288ae070dd7b8844'}, + {'AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch': + '80379cee8e8c8228590af89d37ea3fdb734c7e0ebe5bb357eaf2af71d1399fc6'}, + {'AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch': + 'e291d87b8cd27752474ee0e1f3acb44f9657cac50d5d6dcceca0efc6436f1fe1'}, ] dependencies = [ diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch new file mode 100644 index 00000000000..1c31a0a98a0 --- /dev/null +++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch @@ -0,0 +1,14 @@ +Replace deprecate NUCMER flag -maxmatch with --maxmatch (from MUMmer 4.0.0rc) +see https://github.com/sanger-pathogens/circlator/issues/121 and https://github.com/mummer4/mummer/issues/49 +diff -ru amos-3.1.0.orig/src/Pipeline/minimus2.acf amos-3.1.0/src/Pipeline/minimus2.acf +--- amos-3.1.0.orig/src/Pipeline/minimus2.acf 2011-07-25 01:27:26.000000000 +0200 ++++ amos-3.1.0/src/Pipeline/minimus2.acf 2024-03-13 17:03:35.981707768 +0100 +@@ -54,7 +54,7 @@ + 13: $(BINDIR)/dumpreads $(BANK) -m $(REFCOUNT) > $(QRYSEQ) + + ## Getting overlaps +-20: $(NUCMER) -maxmatch -c $(OVERLAP) $(REFSEQ) $(QRYSEQ) -p $(PREFIX) ++20: $(NUCMER) --maxmatch -c $(OVERLAP) $(REFSEQ) $(QRYSEQ) -p $(PREFIX) + 21: $(SHOWCOORDS) -H -c -l -o -r -I $(MINID) $(ALIGN) | $(BINDIR)/nucmerAnnotate | egrep 'BEGIN|END|CONTAIN|IDENTITY' > $(COORDS) + 22: $(BINDIR)/nucmer2ovl -ignore $(MAXTRIM) -tab $(COORDS) | $(BINDIR)/sort2 > $(OVLTAB) + diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch new file mode 100644 index 00000000000..82238b9a089 --- /dev/null +++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch @@ -0,0 +1,15 @@ +minimus2 needs delta-filter and show-coords but these were not set correctly like NUCMER +author: Lara Peeters (HPC-UGent) +diff -ru amos-3.1.0.orig/src/Pipeline/Makefile.in amos-3.1.0/src/Pipeline/Makefile.in +--- amos-3.1.0.orig/src/Pipeline/Makefile.in 2011-08-05 05:08:07.000000000 +0200 ++++ amos-3.1.0/src/Pipeline/Makefile.in 2024-03-14 12:31:16.218067000 +0100 +@@ -477,7 +477,8 @@ + echo '#!$(bindir)/runAmos -C' > "$(DESTDIR)$(bindir)/$$b"; \ + sed -e 's|^BINDIR[ ]*=.*$$|BINDIR=$(bindir)|' \ + -e 's|^NUCMER[ ]*=.*$$|NUCMER=$(NUCMER)|' \ +- -e 's|^DELTAFILTER[ ]*=.*$$|DELTAFILTER=$(DELTAFILTER)|' \ ++ -e 's|^DELTAFILTER[ ]*=.*$$|DELTAFILTER=$(DELTAFILTER)|' \ ++ -e 's|^SHOWCOORDS[ ]*=.*$$|SHOWCOORDS=$(SHOWCOORDS)|' \ + "$(DESTDIR)$(bindir)/$$f" >> "$(DESTDIR)$(bindir)/$$b" \ + || exit 1; \ + ;; \ diff --git a/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..4dc70d8715f --- /dev/null +++ b/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'Blosc' +version = '1.21.5' + +homepage = 'https://www.blosc.org/' + +description = "Blosc, an extremely fast, multi-threaded, meta-compressor library" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Blosc/c-blosc/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['32e61961bbf81ffea6ff30e9d70fca36c86178afd3e3cfa13376adec8c687509'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +sanity_check_paths = { + 'files': ['include/blosc-export.h', 'include/blosc.h', 'lib/libblosc.a', + 'lib/libblosc.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..9e1b0949576 --- /dev/null +++ b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +# Update: Thomas Hoffmann (EMBL) +easyblock = 'CMakeMake' + +name = 'Blosc2' +version = '2.13.2' + +homepage = 'https://www.blosc.org/' + +description = "Blosc, an extremely fast, multi-threaded, meta-compressor library" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Blosc/c-blosc2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f2adcd9615f138d1bb16dc27feadab1bb1eab01d77e5e2323d14ad4ca8c3ca21'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +sanity_check_paths = { + 'files': ['include/blosc2/blosc2-export.h', 'include/blosc2.h', 'lib/libblosc2.a', + 'lib/libblosc2.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb new file mode 100644 index 00000000000..754d1f6214b --- /dev/null +++ b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeMake' + +name = 'DIAMOND' +version = '2.1.9' + +homepage = 'https://github.com/bbuchfink/diamond' +description = "Accelerated BLAST compatible local sequence aligner" + +toolchain = {'name': 'GCC', 'version': '13.2.0'} + +github_account = 'bbuchfink' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4cde9df78c63e8aef9df1e3265cd06a93ce1b047d6dba513a1437719b70e9d88'] + +builddependencies = [ + ('CMake', '3.27.6'), +] + +dependencies = [ + ('zlib', '1.2.13'), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} +sanity_check_commands = ["%(namelower)s help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb new file mode 100644 index 00000000000..3ad16c0cd87 --- /dev/null +++ b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonBundle' + +name = 'denseweight' +version = '0.1.2' + +homepage = 'https://github.com/steimi/denseweight' +description = """ +This package implements the method for imbalanced regression DenseWeight. The corresponding +paper "Density-based weighting for imbalanced regression". The goal of DenseWeight is to allow +training machine learning models for regression tasks that emphasize performance for data +points with rare target values in comparison to data points with more common target values. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), +] + +use_pip = True + +exts_list = [ + ('KDEpy', '1.1.9', { + 'modulename': 'KDEpy', + 'checksums': ['4bf0b2afd430ce5b40fafd98144de83d8b715d46fdf0f45fed2b5c2e9c40ce46'], + }), + (name, version, { + 'checksums': ['281cf1fe4be364366363ee822b524620dcb629c5b9ff7852aa80f91a27c98b1e'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb new file mode 100644 index 00000000000..20a40cd3952 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb @@ -0,0 +1,87 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, +# Ghent University / The Francis Crick Institute +# Authors:: +# * Wiktor Jurkowski +# * Fotis Georgatos +# * George Tsouloupas +# * Kenneth Hoste +# * Adam Huffman +# * Ake Sandgren +# * J. Sassmannshausen +# * Dugan Witherick +# * Christoph Siegert +# License:: MIT/GPL + +name = 'GROMACS' +version = '2024.1' + +homepage = 'https://www.gromacs.org' +description = """ +GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the +Newtonian equations of motion for systems with hundreds to millions of +particles. + +This is a CPU only build, containing both MPI and threadMPI binaries +for both single and double precision. + +It also contains the gmxapi extension for the single precision MPI build. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = [ + 'https://ftp.gromacs.org/pub/gromacs/', + 'ftp://ftp.gromacs.org/pub/gromacs/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch', + 'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch', +] +checksums = [ + {'gromacs-2024.1.tar.gz': '937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7'}, + {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch': + '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'}, + {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch': + '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'}, +] + +builddependencies = [ + ('CMake', '3.27.6'), + ('scikit-build', '0.17.6'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), + ('networkx', '3.2.1'), + ('mpi4py', '3.1.5'), +] + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'download_dep_fail': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('gmxapi', '0.4.2', { + 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' + + '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', + 'source_tmpl': 'gromacs-2023.3.tar.gz', + 'start_dir': 'python_packaging/gmxapi', + 'checksums': ['4ec8f8d0c7af76b13f8fd16db8e2c120e749de439ae9554d9f653f812d78d1cb'], + }), +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/hdWGCNA/hdWGCNA-0.3.00-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/h/hdWGCNA/hdWGCNA-0.3.00-foss-2023a-R-4.3.2.eb new file mode 100644 index 00000000000..fbee4bfaee9 --- /dev/null +++ b/easybuild/easyconfigs/h/hdWGCNA/hdWGCNA-0.3.00-foss-2023a-R-4.3.2.eb @@ -0,0 +1,51 @@ +easyblock = 'Bundle' + +name = 'hdWGCNA' +version = '0.3.00' +versionsuffix = '-R-%(rver)s' +local_biocver = '3.16' + +homepage = 'https://smorabit.github.io/hdWGCNA/' +description = """hdWGCNA is an R package for performing weighted gene co-expression network analysis (WGCNA) in high + dimensional transcriptomics data such as single-cell RNA-seq or spatial transcriptomics. hdWGCNA is highly modular + and can construct context-specific co-expression networks across cellular and spatial hierarchies. hdWGNCA identifies + modules of highly co-expressed genes and provides context for these modules via statistical testing and biological + knowledge sources. hdWGCNA uses datasets formatted as Seurat objects.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('R', '4.3.2'), + ('R-bundle-CRAN', '2023.12'), + ('R-bundle-Bioconductor', '3.18', versionsuffix), +] + +exts_defaultclass = 'RPackage' +exts_default_options = { + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], +} + +exts_list = [ + ('tester', '0.1.7', { + 'checksums': ['b9c645119c21c69450f3d366c911ed92ac7c14ef61652fd676a38fb9d420b5f4'], + }), + (name, version, { + 'source_urls': ['https://github.com/smorabit/hdWGCNA/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['5ef9980f6d25b41af17ebad76722766db72fb8162d5ae7af4565893d26c9ed1f'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +modextrapaths = {'R_LIBS_SITE': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/loompy/loompy-3.0.7-foss-2023a.eb b/easybuild/easyconfigs/l/loompy/loompy-3.0.7-foss-2023a.eb new file mode 100644 index 00000000000..486a2e560c3 --- /dev/null +++ b/easybuild/easyconfigs/l/loompy/loompy-3.0.7-foss-2023a.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonBundle' + +name = 'loompy' +version = '3.0.7' + +homepage = 'https://loompy.org/' +description = "Python implementation of the Loom file format, an efficient file format for large omics datasets" + +toolchain = {'name': 'foss', 'version': '2023a'} + +builddependencies = [('poetry', '1.7.1'), ] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), # for click + ('SciPy-bundle', '2023.07'), + ('h5py', '3.9.0'), + ('numba', '0.58.1'), +] + +use_pip = True + +exts_list = [ + ('numpy-groupies', '0.10.2', { + 'checksums': ['f920c4ded899f5975d94fc63d634e7c89622056bbab8cc98a44d4320a0ae8a12'], + }), + (name, version, { + 'checksums': ['b5cdf7b54734c6bed3a181d11947af70af2c6e0dcadc02fd0e871df232faa8f4'], + }), +] + +sanity_check_paths = { + 'files': ['bin/loompy'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["loompy --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MetaDecoder/MetaDecoder-1.0.19-foss-2023b.eb b/easybuild/easyconfigs/m/MetaDecoder/MetaDecoder-1.0.19-foss-2023b.eb new file mode 100644 index 00000000000..9ee68b714c8 --- /dev/null +++ b/easybuild/easyconfigs/m/MetaDecoder/MetaDecoder-1.0.19-foss-2023b.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonBundle' + +name = 'MetaDecoder' +version = '1.0.19' + +homepage = 'https://github.com/liu-congcong/MetaDecoder' +description = "An algorithm for clustering metagenomic sequences" + +toolchain = {'name': 'foss', 'version': '2023b'} + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), # threadpoolctl + ('SciPy-bundle', '2023.11'), + ('scikit-learn', '1.4.0'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'source_urls': ['https://github.com/liu-congcong/MetaDecoder/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['8b88813a97787bc56baa3100a576a9e56a0de02811c573573a2fffeb7e80623e'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.2.1-gfbf-2023b.eb b/easybuild/easyconfigs/n/networkx/networkx-3.2.1-gfbf-2023b.eb new file mode 100644 index 00000000000..8b1d917815d --- /dev/null +++ b/easybuild/easyconfigs/n/networkx/networkx-3.2.1-gfbf-2023b.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'networkx' +version = '3.2.1' + +homepage = 'https://pypi.python.org/pypi/networkx' +description = """NetworkX is a Python package for the creation, manipulation, +and study of the structure, dynamics, and functions of complex networks.""" + +toolchain = {'name': 'gfbf', 'version': '2023b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6'] + +dependencies = [ + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), # required for numpy, scipy, ... +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Parallel-Hashmap/Parallel-Hashmap-1.3.12-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Parallel-Hashmap/Parallel-Hashmap-1.3.12-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..9c1e920324e --- /dev/null +++ b/easybuild/easyconfigs/p/Parallel-Hashmap/Parallel-Hashmap-1.3.12-GCCcore-12.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'Parallel-Hashmap' +version = '1.3.12' + +homepage = 'https://github.com/greg7mdp/parallel-hashmap' +description = """Parallel Hashmap is built on a modified version of +Abseil's flat_hash_map. Parallel Hashmap has lower space requirements, +is nearly as fast as the underlying flat_hash_map, and can be used from +multiple threads with high levels of concurrency.""" + +# There is no actual library built, so it can be at GCCcore level despite being a C++ "library" +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +github_account = 'greg7mdp' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['0cc203144321924cfbfcc401f42d8204c0dd24e2760c7a1c091baa16d9777c08'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.26.3'), +] + +configopts = '-DPHMAP_BUILD_TESTS=OFF -DPHMAP_BUILD_EXAMPLES=OFF' # The test code doesn't build + +sanity_check_paths = { + 'files': ['include/parallel_hashmap/phmap%s.h' % x for x in [ + '', '_base', '_bits', '_config', '_dump', '_fwd_decl', '_utils' + ]], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb index ac77e85d5a0..2ee75d5ffc3 100644 --- a/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb +++ b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb @@ -674,10 +674,14 @@ exts_list = [ 'checksums': ['aa12d1a4c0ac260b94d448fa01feba242a8a85cb6cbfdc66432e3b5b468add96'], }), ('Net::SSLeay', '1.92', { + 'patches': ['Net-SSLeay-1.92_fix.patch'], 'preconfigopts': "export OPENSSL_PREFIX=$EBROOTOPENSSL && ", 'source_tmpl': 'Net-SSLeay-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHRISN'], - 'checksums': ['47c2f2b300f2e7162d71d699f633dd6a35b0625a00cbda8c50ac01144a9396a9'], + 'checksums': [ + {'Net-SSLeay-1.92.tar.gz': '47c2f2b300f2e7162d71d699f633dd6a35b0625a00cbda8c50ac01144a9396a9'}, + {'Net-SSLeay-1.92_fix.patch': '37790b10c5551bce92bc4bd7c98a92b0058fc16604272c7459a63096b52a8d1c'}, + ], }), ('IO::Socket::SSL', '2.083', { 'source_tmpl': 'IO-Socket-SSL-%(version)s.tar.gz', diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2-foss-2023b.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2-foss-2023b.eb new file mode 100644 index 00000000000..51b07f31b27 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2-foss-2023b.eb @@ -0,0 +1,76 @@ +# http://www.pytables.org/usersguide/installation.html +# updated: Denis Kristak (INUITS) + +easyblock = 'PythonBundle' + +name = 'PyTables' +version = '3.9.2' + +homepage = 'https://www.pytables.org' +description = """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope + with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the + NumPy package. It features an object-oriented interface that, combined with C extensions for the performance-critical + parts of the code (generated using Cython), makes it a fast, yet extremely easy to use tool for interactively browsing, + processing and searching very large amounts of data. One important feature of PyTables is that it optimizes memory and + disk resources so that data takes much less space (specially if on-flight compression is used) than other solutions + such as relational or object oriented databases.""" + +toolchain = {'name': 'foss', 'version': '2023b'} +toolchainopts = {'usempi': True} + +builddependencies = [ + ('pkgconf', '2.0.3'), + ('CMake', '3.27.6'), + ('Ninja', '1.11.1'), + ('scikit-build', '0.17.6'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), # provides numexpr + ('HDF5', '1.14.3'), + ('LZO', '2.10'), + ('Blosc', '1.21.5'), + ('Blosc2', '2.13.2'), + ('py-cpuinfo', '9.0.0'), +] + +use_pip = True + +exts_list = [ + ('ndindex', '1.8', { + 'checksums': ['5fc87ebc784605f01dd5367374cb40e8da8f2c30988968990066c5098a7eebe8'], + }), + # need to align version of blosc2 Python package with version of C Blosc2 used, + # see https://github.com/Blosc/python-blosc2/blob/main/RELEASE_NOTES.md + ('blosc2', '2.5.1', { + 'checksums': ['47d5df50e7286edf81e629ece35f87f13f55c13c5e8545832188c420c75d1659'], + 'preinstallopts': """sed -i 's/version=/cmake_args=["-DUSE_SYSTEM_BLOSC2=YES"], version=/g' setup.py && """, + }), + ('tables', version, { + 'patches': [ + 'PyTables-3.8.0_fix-libs.patch', + 'PyTables-3.9.2_fix-find-blosc2-dep.patch', + ], + 'checksums': [ + {'tables-3.9.2.tar.gz': 'd470263c2e50c4b7c8635a0d99ac1ff2f9e704c24d71e5fa33c4529e7d0ad9c3'}, + {'PyTables-3.8.0_fix-libs.patch': '7a1e6fa1f9169e52293e2b433a4302fa13c5d31e7709cd4fe0e087199b9e3f8a'}, + {'PyTables-3.9.2_fix-find-blosc2-dep.patch': + 'e2149f43da12d9ba26cca4c838f6e8a4694adab75c0f055b186674a017e41a55'}, + ], + }), +] + +local_bins = ['pt2to3', 'ptdump', 'ptrepack', 'pttree'] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'tables'} + +sanity_check_commands = ["%s --help" % x for x in local_bins] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2_fix-find-blosc2-dep.patch b/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2_fix-find-blosc2-dep.patch new file mode 100644 index 00000000000..e832e65b278 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.9.2_fix-find-blosc2-dep.patch @@ -0,0 +1,20 @@ +determine installation prefix of Blosc2 dependency via $EBROOTBLOSC2, if defined, +since mechanism to locate the library via blosc2-*.dist-info/RECORD doesn't work if blosc2 was not installed +with vendored c-blosc2 library; +author: Kenneth Hoste (HPC-UGent) +--- tables-3.9.2/setup.py.orig 2024-03-14 19:17:54.100800849 +0100 ++++ tables-3.9.2/setup.py 2024-03-14 19:22:04.099371064 +0100 +@@ -97,6 +97,13 @@ + + def get_blosc2_directories(): + """Get Blosc2 directories for the C library""" ++ blosc2_root = os.getenv('EBROOTBLOSC2') ++ if blosc2_root: ++ library_path = Path(os.path.join(blosc2_root, 'lib')) ++ include_path = Path(os.path.join(blosc2_root, 'include')) ++ runtime_path = None ++ return include_path, library_path, runtime_path ++ + try: + import blosc2 + except ModuleNotFoundError: diff --git a/easybuild/easyconfigs/p/py-cpuinfo/py-cpuinfo-9.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/py-cpuinfo/py-cpuinfo-9.0.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..4ffea66d7cb --- /dev/null +++ b/easybuild/easyconfigs/p/py-cpuinfo/py-cpuinfo-9.0.0-GCCcore-13.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonPackage' + +name = 'py-cpuinfo' +version = '9.0.0' + +homepage = 'https://github.com/workhorsy/py-cpuinfo' +description = "py-cpuinfo gets CPU info with pure Python." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.5'), +] + +download_dep_fail = True +use_pip = True + +sanity_check_paths = { + 'files': ['bin/cpuinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "cpuinfo", + "python -m cpuinfo", +] + +options = {'modulename': 'cpuinfo'} + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb index 5c533ecb998..4e319447dd0 100644 --- a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb +++ b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb @@ -51,6 +51,8 @@ dependencies = [ ('MPFR', '4.2.0'), # for Rmpfr ('libgit2', '1.5.0'), ('OpenSSL', '1.1', '', SYSTEM), + ('protobuf', '23.0'), + ('jq', '1.6'), ] # Some R extensions (mclust, quantreg, waveslim for example) require the math library (-lm) to avoid undefined symbols. @@ -3669,6 +3671,28 @@ exts_list = [ ('ridge', '3.3', { 'checksums': ['5c2daecf6f97aa099ef5fa54f8448518c4f2ed6e44dd29fc60621a70721c60f5'], }), + ('gdalUtilities', '1.2.5', { + 'checksums': ['2a72e990080ad626205c78edc6614959b564413b7fc23132008b7259723571a7'], + }), + ('protolite', '2.3.0', { + 'patches': ['protolite-2.3.0_use-c++17.patch'], + 'checksums': [ + {'protolite_2.3.0.tar.gz': '53ef24d51a8348f97bec39d254df3b97bd8b3d9bbffb81d6b06aad849cf78ce9'}, + {'protolite-2.3.0_use-c++17.patch': 'fb5084c55dfbabc6f3e778accf4553f5c84f2bb0ab0ae84b3538c866a829afa4'}, + ], + }), + ('jqr', '1.3.1', { + 'checksums': ['e22461e75ff7e57fe502dc7d16c5e5fe9f8e4cbe042b5eadad06fc37394f9f36'], + }), + ('geojson', '0.3.5', { + 'checksums': ['e425c8579dc9cf5e3c1f71db3b0eed8225e5ed7ea88b6c861f800f60fc07402a'], + }), + ('geojsonio', '0.11.3', { + 'checksums': ['7168eb3571440479f0cbdd005ff9db3233d3c91fc10d37fb0eb200793da3402b'], + }), + ('MODIStsp', '2.1.0', { + 'checksums': ['9416bf2a32faf4ae7159f50ba56ac7924852af59f932223b2268aedfa1769fda'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/protolite-2.3.0_use-c++17.patch b/easybuild/easyconfigs/r/R/protolite-2.3.0_use-c++17.patch new file mode 100644 index 00000000000..a73741e3a1e --- /dev/null +++ b/easybuild/easyconfigs/r/R/protolite-2.3.0_use-c++17.patch @@ -0,0 +1,14 @@ +make sure that protolite using -std=gnu++17 instead of -std=gnu++14 (default in R 4.2.2) +required to fix compilation problems like: +error: string_view in namespace std does not name a type +author: Kenneth Hoste (HPC-UGent) +--- protolite/configure.orig 2024-01-10 10:50:16.030350785 +0100 ++++ protolite/configure 2024-01-10 10:50:52.847841896 +0100 +@@ -87,6 +87,7 @@ + + # Write to Makevars + sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars ++echo 'CXX_STD = CXX17' >> src/Makevars + + # Look for 'protoc' compiler + if [ `command -v protoc` ]; then diff --git a/easybuild/easyconfigs/s/SLEPc/SLEPc-3.20.1-foss-2023a.eb b/easybuild/easyconfigs/s/SLEPc/SLEPc-3.20.1-foss-2023a.eb new file mode 100644 index 00000000000..59c1fa24feb --- /dev/null +++ b/easybuild/easyconfigs/s/SLEPc/SLEPc-3.20.1-foss-2023a.eb @@ -0,0 +1,21 @@ +name = 'SLEPc' +version = '3.20.1' + +homepage = 'https://slepc.upv.es' +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution + of large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for + either standard or generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a + partial SVD of a large, sparse, rectangular matrix, and to solve quadratic eigenvalue problems.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['https://slepc.upv.es/download/distrib'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5a36b664895881d3858d0644f56bf7bb922bdab70d732fa11cbf6442fec11806'] + +dependencies = [('PETSc', '3.20.3')] + +petsc_arch = 'installed-arch-linux2-c-opt' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1-foss-2023a.eb b/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1-foss-2023a.eb new file mode 100644 index 00000000000..b799671e0f0 --- /dev/null +++ b/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1-foss-2023a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'scVelo' +version = '0.3.1' + +homepage = "https://scvelo.org" +description = """scVelo is a scalable toolkit for estimating and analyzing RNA velocities in single cells using + dynamical modeling.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +builddependencies = [('hatchling', '1.18.0')] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('numba', '0.58.1'), + ('anndata', '0.10.5.post1'), + ('scanpy', '1.9.8'), + ('loompy', '3.0.7'), + ('umap-learn', '0.5.5'), + ('scikit-learn', '1.3.1'), + ('matplotlib', '3.7.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('scvelo', version, { + 'patches': ['scVelo-0.3.1_dep-fix.patch'], + 'preinstallopts': "sed -i 's/scikit-learn>=0.21.2, <1.2.0/scikit-learn>=0.21.2/' pyproject.toml && ", + 'checksums': [ + {'scvelo-0.3.1.tar.gz': '3a41a73b29e091268c40f08dc57a63eab5dfc2bd8a57e564cf1a6aca5e4d5d22'}, + {'scVelo-0.3.1_dep-fix.patch': 'c8d1b41518f4b7b6528bcb00861287d9f1d96d419a4b3ce98599ea1d8cb59503'}, + ], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1_dep-fix.patch b/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1_dep-fix.patch new file mode 100644 index 00000000000..10c26136ce7 --- /dev/null +++ b/easybuild/easyconfigs/s/scVelo/scVelo-0.3.1_dep-fix.patch @@ -0,0 +1,216 @@ +Move scvi-tools to optional-dependencies and remove `torch` dependency + +From b8d80f7934a305888a61417f7aa22de2e426b81a Mon Sep 17 00:00:00 2001 +From: Michal Klein <46717574+michalk8@users.noreply.github.com> +Date: Wed, 7 Feb 2024 22:15:53 +0100 +Subject: [PATCH 1/4] Remove hard `scvi-tools` dependency + +--- + .github/workflows/ci.yml | 2 +- + pyproject.toml | 7 +++++-- + scvelo/tools/__init__.py | 12 ++++++++++-- + 3 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml +index fd341688..f8058c62 100644 +--- a/.github/workflows/ci.yml ++++ b/.github/workflows/ci.yml +@@ -45,7 +45,7 @@ jobs: + fail-fast: false + matrix: + os: [ubuntu-latest] +- python-version: [3.9, "3.10"] ++ python-version: ["3.9", "3.10"] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} +diff --git a/pyproject.toml b/pyproject.toml +index a0184458..5f747c2c 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -50,11 +50,13 @@ dependencies = [ + "pandas>=1.1.1, !=1.4.0", + "scipy>=1.4.1", + "scikit-learn>=0.21.2, <1.2.0", +- "scvi-tools>=0.20.1", + "matplotlib>=3.3.0" + ] + + [project.optional-dependencies] ++vi = [ ++ "scvi-tools>=0.20.1", ++] + louvain = [ + "igraph", + "louvain" +@@ -78,7 +80,8 @@ dev = [ + "pybind11", + "pytest-cov", + "igraph", +- "setuptools_scm" ++ "scvi-tools>=0.20.1", ++ "setuptools_scm", + ] + docs = [ + # Just until rtd.org understands pyproject.toml +diff --git a/scvelo/tools/__init__.py b/scvelo/tools/__init__.py +index b2e3e126..3a40aff1 100644 +--- a/scvelo/tools/__init__.py ++++ b/scvelo/tools/__init__.py +@@ -1,3 +1,5 @@ ++import contextlib ++ + from scanpy.tools import diffmap, dpt, louvain, tsne, umap + + from ._em_model import ExpectationMaximizationModel +@@ -11,7 +13,6 @@ + recover_latent_time, + ) + from ._steady_state_model import SecondOrderSteadyStateModel, SteadyStateModel +-from ._vi_model import VELOVI + from .paga import paga + from .rank_velocity_genes import rank_velocity_genes, velocity_clusters + from .score_genes_cell_cycle import score_genes_cell_cycle +@@ -23,6 +24,10 @@ + from .velocity_graph import velocity_graph + from .velocity_pseudotime import velocity_map, velocity_pseudotime + ++with contextlib.suppress(ImportError): ++ from ._vi_model import VELOVI ++ ++ + __all__ = [ + "align_dynamics", + "differential_kinetic_test", +@@ -54,5 +59,8 @@ + "SteadyStateModel", + "SecondOrderSteadyStateModel", + "ExpectationMaximizationModel", +- "VELOVI", + ] ++if "VELOVI" in locals(): ++ __all__ += ["VELOVI"] ++ ++del contextlib + +From 12e91cf0015df8917669e8242afd38c9b7291f82 Mon Sep 17 00:00:00 2001 +From: Michal Klein <46717574+michalk8@users.noreply.github.com> +Date: Wed, 7 Feb 2024 22:37:00 +0100 +Subject: [PATCH 2/4] Skip VELOVI tests if `scvi-tools` not installed + +--- + pyproject.toml | 1 - + tests/tools/test_vi_model.py | 12 ++++++++++-- + 2 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 5f747c2c..71cd881b 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -80,7 +80,6 @@ dev = [ + "pybind11", + "pytest-cov", + "igraph", +- "scvi-tools>=0.20.1", + "setuptools_scm", + ] + docs = [ +diff --git a/tests/tools/test_vi_model.py b/tests/tools/test_vi_model.py +index 15592072..241896d8 100644 +--- a/tests/tools/test_vi_model.py ++++ b/tests/tools/test_vi_model.py +@@ -1,7 +1,15 @@ +-from scvi.data import synthetic_iid ++# isort: skip_file ++import pytest ++import contextlib + + import scvelo as scv +-from scvelo.tools import VELOVI ++ ++with contextlib.suppress(ImportError): ++ from scvi.data import synthetic_iid ++ from scvelo.tools import VELOVI ++ ++ ++_ = pytest.importorskip("scvi") + + + def test_preprocess_data(): + +From cfd4fa096e8b25161fc71467d02bf4036b0f5e75 Mon Sep 17 00:00:00 2001 +From: Michal Klein <46717574+michalk8@users.noreply.github.com> +Date: Wed, 7 Feb 2024 22:43:16 +0100 +Subject: [PATCH 3/4] Remove `torch` dependency + +--- + scvelo/tools/_core.py | 4 ---- + scvelo/tools/_vi_module.py | 4 +++- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/scvelo/tools/_core.py b/scvelo/tools/_core.py +index df352bc0..92b18212 100644 +--- a/scvelo/tools/_core.py ++++ b/scvelo/tools/_core.py +@@ -1,8 +1,6 @@ + from abc import abstractmethod + from typing import NamedTuple + +-import torch +- + from anndata import AnnData + + +@@ -13,8 +11,6 @@ class _REGISTRY_KEYS_NT(NamedTuple): + + REGISTRY_KEYS = _REGISTRY_KEYS_NT() + +-DEFAULT_ACTIVATION_FUNCTION = torch.nn.Softplus() +- + + class BaseInference: + """Base Inference class for all velocity methods.""" +diff --git a/scvelo/tools/_vi_module.py b/scvelo/tools/_vi_module.py +index 4c5ecc81..c211da75 100644 +--- a/scvelo/tools/_vi_module.py ++++ b/scvelo/tools/_vi_module.py +@@ -11,7 +11,9 @@ + from scvi.module.base import auto_move_data, BaseModuleClass, LossOutput + from scvi.nn import Encoder, FCLayers + +-from ._core import DEFAULT_ACTIVATION_FUNCTION, REGISTRY_KEYS ++from ._core import REGISTRY_KEYS ++ ++DEFAULT_ACTIVATION_FUNCTION = torch.nn.Softplus() + + torch.backends.cudnn.benchmark = True + + +From e03ed96918361f3d124ee178c4bda1cfee0e83cb Mon Sep 17 00:00:00 2001 +From: Michal Klein <46717574+michalk8@users.noreply.github.com> +Date: Wed, 7 Feb 2024 22:51:35 +0100 +Subject: [PATCH 4/4] Remove unused `skip_file` + +--- + tests/tools/test_vi_model.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/tests/tools/test_vi_model.py b/tests/tools/test_vi_model.py +index 241896d8..d8ecc0c8 100644 +--- a/tests/tools/test_vi_model.py ++++ b/tests/tools/test_vi_model.py +@@ -1,11 +1,12 @@ +-# isort: skip_file +-import pytest + import contextlib + ++import pytest ++ + import scvelo as scv + + with contextlib.suppress(ImportError): + from scvi.data import synthetic_iid ++ + from scvelo.tools import VELOVI + + \ No newline at end of file diff --git a/easybuild/easyconfigs/v/Vim/Vim-9.1.0004-GCCcore-12.3.0.eb b/easybuild/easyconfigs/v/Vim/Vim-9.1.0004-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..d0ee82a07da --- /dev/null +++ b/easybuild/easyconfigs/v/Vim/Vim-9.1.0004-GCCcore-12.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Vim' +version = "9.1.0004" + +homepage = 'http://www.vim.org' +description = """ Vim is an advanced text editor that seeks to provide the power + of the de-facto Unix editor 'Vi', with a more complete feature set. """ + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b930d02549e246a220d6ee95a4ef4938e56881e33b82e992e9439ac0f9fc7c13'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('Python', '3.11.3'), + ('Perl', '5.36.1'), + ('PCRE', '8.45'), +] + +configopts = "--with-features=huge --enable-python3interp=yes --enable-perlinterp=yes" + + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'bin/vimtutor', 'bin/xxd'], + 'dirs': ['bin', 'share'], +} + +sanity_check_commands = ['%(namelower)s --version'] + +moduleclass = 'tools'