From cad0d9420497ef406689035b0024059c81266f63 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Jan 2024 23:17:56 +0100 Subject: [PATCH] {bio}foss/2022a] CellRank v2.0.2, scVelo v0.2.5, slepc4py v3.17.2, petsc4py v3.17.4 --- .../c/CellRank/CellRank-2.0.2-foss-2022a.eb | 67 +++++++++++++++++++ .../c/CellRank/pygam-0.9.0_fix-poetry.patch | 26 +++++++ .../p/petsc4py/petsc4py-3.17.4-foss-2022a.eb | 26 +++++++ .../s/scVelo/scVelo-0.2.5-foss-2022a.eb | 47 +++++++++++++ .../s/slepc4py/slepc4py-3.17.2-foss-2022a.eb | 26 +++++++ 5 files changed, 192 insertions(+) create mode 100644 easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb create mode 100644 easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch create mode 100644 easybuild/easyconfigs/p/petsc4py/petsc4py-3.17.4-foss-2022a.eb create mode 100644 easybuild/easyconfigs/s/scVelo/scVelo-0.2.5-foss-2022a.eb create mode 100644 easybuild/easyconfigs/s/slepc4py/slepc4py-3.17.2-foss-2022a.eb diff --git a/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb new file mode 100644 index 000000000000..1bd102801606 --- /dev/null +++ b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb @@ -0,0 +1,67 @@ +easyblock = 'PythonBundle' + +name = 'CellRank' +version = '2.0.2' + +homepage = 'https://cellrank.readthedocs.io/en/stable/' +description = """CellRank is a toolkit to uncover cellular dynamics based on + Markov state modeling of single-cell data. It contains two main modules: +kernels compute cell-cell transition probabilities and estimators generate +hypothesis based on these. """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('petsc4py', '3.17.4'), + ('slepc4py', '3.17.2'), + ('scikit-learn', '1.1.2'), + ('scVelo', '0.2.5'), + ('scanpy', '1.9.1'), # also provides anndata + ('numba', '0.56.4'), + ('networkx', '2.8.4'), + ('matplotlib', '3.5.2'), + ('Seaborn', '0.12.1'), + ('wrapt', '1.15.0'), +] + +use_pip = True + +_preinstallopts_pygam = """sed -i -e 's/numpy = .*/numpy = "^1.22.3"/g' """ +_preinstallopts_pygam += """-e 's/scipy = .*/scipy = "^1.8.1"/g' pyproject.toml && """ + +exts_list = [ + ('docrep', '0.3.2', { + 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'], + }), + ('python-utils', '3.8.1', { + 'checksums': ['ec3a672465efb6c673845a43afcfafaa23d2594c24324a40ec18a0c59478dc0b'], + }), + ('progressbar2', '4.3.2', { + 'modulename': 'progressbar', + 'checksums': ['c37e6e1b4e57ab43f95c3d0e8d90061bec140e4fed56b8343183db3aa1e19a52'], + }), + ('pygam', '0.9.0', { + 'patches': ['pygam-0.9.0_fix-poetry.patch'], + 'checksums': [ + {'pygam-0.9.0.tar.gz': 'dba62285a275cdd15a6adf764f6717b3cd077502f01cf1bcee5ce7cbda221956'}, + {'pygam-0.9.0_fix-poetry.patch': '90460a5416167f146f5bf2c55e46c23d1e7a8f864652e24665354a1b39d7e3d0'}, + ], + 'preinstallopts': _preinstallopts_pygam, + }), + ('pygpcca', '1.0.4', { + 'checksums': ['5e3b49279abc62d25133811daeee050715f995ff02042c46e2a2034331d090d1'], + 'preinstallopts': "sed -i 's/jinja2==/jinja2>=/g' requirements.txt && ", + }), + ('cellrank', version, { + 'checksums': ['47c1d2e953ac91f572937d816142b4ac5f0c876174c60f857562de76a9f8aa61'], + # strip away too strict version requirements for pandas + anndata + 'preinstallopts': "sed -i -e 's/pandas>=1.5.0/pandas/g' -e 's/anndata>=0.9/anndata/g' pyproject.toml && ", + }), +] + +sanity_pip_check = True + +sanity_check_commands = ["python -c 'import cellrank as cr'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch b/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch new file mode 100644 index 000000000000..cc463d4ea64b --- /dev/null +++ b/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch @@ -0,0 +1,26 @@ +workaround for: + RuntimeError: The Poetry configuration is invalid: + - Additional properties are not allowed ('group' was unexpected) +author: Kenneth Hoste (HPC-UGent) +--- pygam-0.9.0/pyproject.toml.orig 2024-01-05 22:13:47.399107878 +0100 ++++ pygam-0.9.0/pyproject.toml 2024-01-05 22:13:52.323119792 +0100 +@@ -12,19 +12,6 @@ + scipy = "^1.10.1" + progressbar2 = "^4.2.0" + +-[tool.poetry.group.dev.dependencies] +-pytest = "^7.2.2" +-flake8 = "^6.0.0" +-codecov = "^2.1.12" +-pytest-cov = "^4.0.0" +-mock = "^5.0.1" +-nbsphinx = "^0.9.0" +-sphinx-rtd-theme = "^1.2.0" +-sphinxcontrib-napoleon = "^0.7" +-ipython = "^8.11.0" +-pandas = "^1.5.3" +-black = "^23.1.0" +- + [tool.black] + line-length = 88 + skip-string-normalization = true diff --git a/easybuild/easyconfigs/p/petsc4py/petsc4py-3.17.4-foss-2022a.eb b/easybuild/easyconfigs/p/petsc4py/petsc4py-3.17.4-foss-2022a.eb new file mode 100644 index 000000000000..a944c674694f --- /dev/null +++ b/easybuild/easyconfigs/p/petsc4py/petsc4py-3.17.4-foss-2022a.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'petsc4py' +version = '3.17.4' + +homepage = 'https://bitbucket.org/petsc/petsc4py' +description = "petsc4py are Python bindings for PETSc, the Portable, Extensible Toolchain for Scientific Computation." + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['216c3da074557946615d37d0826bc89f1f2e599323e2dacbdc45326d78bd50c6'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PETSc', version), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_commands = ["python -c 'from petsc4py import PETSc'"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scVelo/scVelo-0.2.5-foss-2022a.eb b/easybuild/easyconfigs/s/scVelo/scVelo-0.2.5-foss-2022a.eb new file mode 100644 index 000000000000..5e7f3b40ba6c --- /dev/null +++ b/easybuild/easyconfigs/s/scVelo/scVelo-0.2.5-foss-2022a.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonBundle' + +name = 'scVelo' +version = '0.2.5' + +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': '2022a'} + +builddependencies = [ + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), + ('h5py', '3.7.0'), + ('matplotlib', '3.5.2'), + ('networkx', '2.8.4'), + ('numba', '0.56.4'), + ('PyTables', '3.8.0'), + ('statsmodels', '0.13.1'), + ('libpng', '1.6.37'), + ('freetype', '2.12.1'), + ('Tkinter', '%(pyver)s'), + ('tqdm', '4.64.0'), + ('scanpy', '1.9.1'), # also provides anndata + ('Seaborn', '0.12.1'), + ('loompy', '3.0.7'), # also provides numpy-groupies + ('umap-learn', '0.5.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'modulename': 'scvelo', + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['7e32d9e34245971330d69c12f4339cebe0acebb61e59a8b1aca9b369078b5207'], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/slepc4py/slepc4py-3.17.2-foss-2022a.eb b/easybuild/easyconfigs/s/slepc4py/slepc4py-3.17.2-foss-2022a.eb new file mode 100644 index 000000000000..c34f17533e02 --- /dev/null +++ b/easybuild/easyconfigs/s/slepc4py/slepc4py-3.17.2-foss-2022a.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'slepc4py' +version = '3.17.2' + +homepage = 'https://bitbucket.org/slepc/slepc4py' +description = "Python bindings for SLEPc, the Scalable Library for Eigenvalue Problem Computations." + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['e5b235486b6901cd4ff0d94083f0e5eeacaef3a2893e1714769717ad488a3885'] + +dependencies = [ + ('Python', '3.10.4'), + ('SLEPc', version), + ('petsc4py', '3.17.4'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_commands = ["python -c 'from slepc4py import SLEPc'"] + +moduleclass = 'tools'