diff --git a/easybuild/easyconfigs/a/anndata/anndata-0.11.4-foss-2024a.eb b/easybuild/easyconfigs/a/anndata/anndata-0.11.4-foss-2024a.eb new file mode 100644 index 00000000000..7cbc5bdadd9 --- /dev/null +++ b/easybuild/easyconfigs/a/anndata/anndata-0.11.4-foss-2024a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'anndata' +version = '0.11.4' + +homepage = 'https://github.com/scverse/anndata' +description = """anndata is a Python package for handling annotated data matrices in memory and on disk, + positioned between pandas and xarray""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [('hatchling', '1.24.2')] +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), + ('SciPy-bundle', '2024.05'), + ('h5py', '3.12.1'), + ('setuptools', '80.9.0'), +] + +exts_list = [ + ('array_api_compat', '1.12.0', { + 'checksums': ['585bc615f650de53ac24b7c012baecfcdd810f50df3573be47e6dd9fa20df974'], + }), + ('natsort', '8.4.0', { + 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'], + }), + (name, version, { + 'checksums': ['4ce08d09d2ccb5f37d32790363bbcc7fc1b79863842296ae4badfaf48c736e24'], + }), +] + +sanity_check_paths = { + 'files': ['bin/natsort'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["natsort --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/Lightning/Lightning-2.5.2-foss-2024a.eb b/easybuild/easyconfigs/l/Lightning/Lightning-2.5.2-foss-2024a.eb new file mode 100644 index 00000000000..1650f671711 --- /dev/null +++ b/easybuild/easyconfigs/l/Lightning/Lightning-2.5.2-foss-2024a.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'Lightning' +version = '2.5.2' + +homepage = 'https://github.com/Lightning-AI/pytorch-lightning' +description = """ +The deep learning framework to pretrain, finetune and deploy AI models. +Lightning has 4 core packages: + PyTorch Lightning: Train and deploy PyTorch at scale. + Lightning Fabric: Expert control. + Lightning Data: Blazing fast, distributed streaming of training data from cloud storage. + Lightning Apps: Build AI products and ML workflows. +""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['9550df613cfb22358ebf77b4a8ad45f3767cd7d26ba2d52b7f036bd3cdd701c4'] + +dependencies = [ + ('Python', '3.12.3'), + ('PyTorch', '2.6.0'), + ('PyTorch-Lightning', version), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/ml-collections/ml-collections-1.1.0-foss-2024a.eb b/easybuild/easyconfigs/m/ml-collections/ml-collections-1.1.0-foss-2024a.eb new file mode 100644 index 00000000000..04eb95f0f6c --- /dev/null +++ b/easybuild/easyconfigs/m/ml-collections/ml-collections-1.1.0-foss-2024a.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'ml-collections' +version = '1.1.0' + +homepage = 'https://github.com/google/ml_collections' +description = """ +ML Collections is a library of Python Collections designed for ML use cases. +""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [('hatchling', '1.24.2')] +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('PyYAML', '6.0.2'), + ('absl-py', '2.1.0'), +] + +exts_list = [ + ('ml_collections', version, { + 'checksums': ['0ac1ac6511b9f1566863e0bb0afad0c64e906ea278ad3f4d2144a55322671f6f'], + }), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.9.1-foss-2024a.eb b/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.9.1-foss-2024a.eb new file mode 100644 index 00000000000..9a7de6366de --- /dev/null +++ b/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.9.1-foss-2024a.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'pyro-ppl' +version = '1.9.1' + +homepage = 'https://github.com/pyro-ppl/pyro' +description = "Pyro is a flexible, scalable deep probabilistic programming library built on PyTorch." + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [('hatchling', '1.24.2')] +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('PyTorch', '2.6.0'), + ('tqdm', '4.66.5'), +] + +exts_list = [ + ('opt_einsum', '3.4.0', { + 'checksums': ['96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac'], + }), + ('pyro-api', '0.1.2', { + 'modulename': 'pyroapi', + 'checksums': ['a1b900d9580aa1c2fab3b123ab7ff33413744da7c5f440bd4aadc4d40d14d920'], + }), + (name, version, { + 'modulename': 'pyro', + 'checksums': ['5e1596de276c038a3f77d2580a90d0a97126e0104900444a088eee620bb0d65e'], + }), +] + +sanity_check_commands = [ + "python -c 'from pyroapi import distributions as dist'", + "python -c 'from pyroapi import infer, ops, optim, pyro, pyro_backend'", + "python -c 'from pyro import infer, nn, distributions'", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scanpy/scanpy-1.10.4-foss-2024a.eb b/easybuild/easyconfigs/s/scanpy/scanpy-1.10.4-foss-2024a.eb new file mode 100644 index 00000000000..481696b0d2a --- /dev/null +++ b/easybuild/easyconfigs/s/scanpy/scanpy-1.10.4-foss-2024a.eb @@ -0,0 +1,58 @@ +easyblock = 'PythonBundle' + +name = 'scanpy' +version = '1.10.4' + +homepage = 'https://scanpy.readthedocs.io/en/stable/' +description = """Scanpy is a scalable toolkit for analyzing single-cell gene expression data built + jointly with anndata. It includes preprocessing, visualization, clustering, trajectory inference + and differential expression testing. The Python-based implementation efficiently deals with + datasets of more than one million cells. +""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'openmp': True} + +builddependencies = [('hatchling', '1.24.2')] +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('matplotlib', '3.9.2'), + ('Seaborn', '0.13.2'), + ('h5py', '3.12.1'), + ('tqdm', '4.66.5'), + ('scikit-learn', '1.5.2'), + ('statsmodels', '0.14.4'), + ('networkx', '3.4.2'), + ('numba', '0.60.0'), + ('umap-learn', '0.5.7'), + ('anndata', '0.11.4'), +] + +exts_list = [ + ('stdlib_list', '0.11.0', { + 'checksums': ['b74a7b643a77a12637e907f3f62f0ab9f67300bce4014f6b2d3c8b4c8fd63c66'], + }), + ('session-info', '1.0.0', { + 'sources': ['session_info-%(version)s.tar.gz'], + 'checksums': ['3cda5e03cca703f32ae2eadbd6bd80b6c21442cfb60e412c21cb8ad6d5cbb6b7'], + }), + ('legacy_api_wrap', '1.4.1', { + 'checksums': ['9c40d67aa8312fec8763e87cbf28fea4b67710c79ca7a18137b573d150f3b2b4'], + }), + (name, version, { + 'checksums': ['2682fbbe2e4106c349472feebef08e174062fb666db4c94123758c6a7a470396'], + }), +] + +sanity_check_paths = { + 'files': ['bin/scanpy'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "natsort --help", + "scanpy --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scvi-tools/scvi-tools-1.4.1-foss-2024a.eb b/easybuild/easyconfigs/s/scvi-tools/scvi-tools-1.4.1-foss-2024a.eb new file mode 100644 index 00000000000..6d67dacb3d3 --- /dev/null +++ b/easybuild/easyconfigs/s/scvi-tools/scvi-tools-1.4.1-foss-2024a.eb @@ -0,0 +1,77 @@ +easyblock = 'PythonBundle' + +name = 'scvi-tools' +version = '1.4.1' + +homepage = 'https://github.com/scverse/scvi-tools' +description = """scvi-tools (single-cell variational inference tools) is a package for probabilistic modeling and +analysis of single-cell omics data, built on top of PyTorch and AnnData.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('hatchling', '1.27.0'), + ('coverage', '7.9.2'), + ('captum', '0.8.0'), +] +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('PyTorch', '2.6.0'), + ('PyTorch-Lightning', '2.5.2'), + ('Lightning', '2.5.2'), + ('anndata', '0.11.4'), + ('matplotlib', '3.9.2'), + ('scikit-learn', '1.5.2'), + ('tqdm', '4.66.5'), + ('h5py', '3.12.1'), + ('pyro-ppl', '1.9.1'), + ('ml-collections', '1.1.0'), + ('numba', '0.60.0'), + ('scanpy', '1.10.4'), + ('tensorboard', '2.18.0'), + ('xarray', '2024.11.0'), +] + +# avoid srun problem +# https://github.com/easybuilders/easybuild-easyconfigs/pull/25021#issuecomment-3744728157 +local_test_command = 'export SLURM_NTASKS_PER_NODE=$SLURM_NTASKS && ' +local_test_command += 'pytest -vs tests ' +# skip tests required optional dependencies +local_test_command += ( + '--ignore=tests/external/mrvi_jax ' + '--ignore=tests/external/tangram ' + '--ignore=tests/model/test_jaxscvi.py ' + '--ignore=tests/hub ' + '--ignore=tests/criticism ' + '--ignore=tests/external/cytovi ' + '--deselect=tests/data/test_anndata.py::test_anntorchdataset_dask ' + '--deselect tests/model/test_multivi.py::test_multivi_mudata_rna_atac ' +) + +exts_list = [ + ('packaging', '25.0', { + 'checksums': ['d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f'], + }), + ('pytest_pretty', '1.3.0', { + 'checksums': ['97e9921be40f003e40ae78db078d4a0c1ea42bf73418097b5077970c2cc43bf3'], + }), + ('mudata', '0.3.2', { + 'checksums': ['c9b24f2429f369512f38e48599e341e7684abcf769df277e473700d4f1212740'], + }), + ('sparse', '0.17.0', { + 'checksums': ['6b1ad51a810c5be40b6f95e28513ec810fe1c785923bd83b2e4839a751df4bf7'], + }), + ('docrep', '0.3.2', { + 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'], + }), + (name, version, { + 'modulename': 'scvi', + 'runtest': local_test_command, + 'sources': ['scvi_tools-%(version)s.tar.gz'], + 'testinstall': True, + 'checksums': ['ee75eaac665618b9ee6fa466f6353ef68eb33cd3d7e2c77069e743471ca2103a'], + }), +] + +moduleclass = 'bio' diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 0c226e3d183..f75d39c33bb 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -553,6 +553,8 @@ def check_dep_vars(self, gen, dep, dep_vars): # some software packages require a specific (older/newer) version of a particular dependency alt_dep_versions = { + # scanpy-1.10.4 and scvi-tools-1.4.1 requires anndata >= 0.11 + 'anndata': [(r'0\.11\.4', [r'scvi-tools-1.4.1-', r'scanpy-1.10.4-'])], # arrow-R 6.0.0.2 is used for two R/R-bundle-Bioconductor sets (4.1.2/3.14 and 4.2.0/3.15) 'arrow-R': [('6.0.0.2', [r'R-bundle-Bioconductor-'])], # BRAKER 3.0.8 depends on AUGUSTUS 3.5.0-20240612