Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{bio}[foss/2023a] scArches v0.6.1, scib-metrics v0.5.1, scvi-tools v1.1.2, ... #20814

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions easybuild/easyconfigs/j/jax/jax-0.4.25-foss-2023a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
# Updated by: Alex Domingo (Vrije Universiteit Brussel), Pavel Tománek (INUITS)
# Update v0.4.25 based on: https://github.com/easybuilders/easybuild-easyconfigs/pull/20119

easyblock = 'PythonBundle'

name = 'jax'
version = '0.4.25'

homepage = 'https://jax.readthedocs.io/'
description = """Composable transformations of Python+NumPy programs:
differentiate, vectorize, JIT to GPU/TPU, and more"""

toolchain = {'name': 'foss', 'version': '2023a'}

builddependencies = [
('Bazel', '6.3.1'),
('pytest-xdist', '3.3.1'),
# git 2.x required to fetch repository 'io_bazel_rules_docker'
('git', '2.41.0', '-nodocs'),
('matplotlib', '3.7.2'),
('poetry', '1.5.1'),
('pybind11', '2.11.1'),
]

dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('zlib', '1.2.13'),
('flatbuffers-python', '23.5.26'),
('ml_dtypes', '0.3.2'),
]

use_pip = True

local_xla_commit = '4ccfe33c71665ddcbca5b127fefe8baa3ed632d4'
local_tfrt_commit = '0aeefb1660d7e37964b2bb71b1f518096bda9a25'

local_extract_cmd = 'cp %s %(builddir)s/archives'

local_repo_opt = '--bazel_options="--distdir=%(builddir)s/archives" '
local_repo_opt += '--bazel_options="--action_env=TF_SYSTEM_LIBS=pybind11" '
local_repo_opt += '--bazel_options="--action_env=CPATH=$EBROOTPYBIND11/include" '

default_easyblock = 'PythonPackage'
default_component_specs = {
'sources': [SOURCE_TAR_GZ],
'source_urls': [PYPI_SOURCE],
'start_dir': '%(name)s-%(version)s',
'use_pip': True,
'sanity_pip_check': True,
'download_dep_fail': True,
}

components = [
('absl-py', '2.1.0', {
'options': {'modulename': 'absl'},
'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
}),
('jaxlib', version, {
'sources': [
'%(name)s-v%(version)s.tar.gz',
{
'download_filename': '%s.tar.gz' % local_xla_commit,
'filename': 'xla-%s.tar.gz' % local_xla_commit,
'extract_cmd': local_extract_cmd,
},
{
'download_filename': '%s.tar.gz' % local_tfrt_commit,
'filename': 'tf_runtime-%s.tar.gz' % local_tfrt_commit,
'extract_cmd': local_extract_cmd,
},
],
'source_urls': [
'https://github.com/google/jax/archive/',
'https://github.com/tensorflow/runtime/archive',
'https://github.com/openxla/xla/archive'
],
'patches': ['jax-0.4.25_fix-pybind11-systemlib.patch'],
'checksums': [
{'jaxlib-v0.4.25.tar.gz':
'fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8'},
{'xla-4ccfe33c71665ddcbca5b127fefe8baa3ed632d4.tar.gz':
'8a59b9af7d0850059d7043f7043c780066d61538f3af536e8a10d3d717f35089'},
{'tf_runtime-0aeefb1660d7e37964b2bb71b1f518096bda9a25.tar.gz':
'a3df827d7896774cb1d80bf4e1c79ab05c268f29bd4d3db1fb5a4b9c2079d8e3'},
{'jax-0.4.25_fix-pybind11-systemlib.patch':
'daad5b726d1a138431b05eb60ecf4c89c7b5148eb939721800bdf43d804ca033'},
],
'start_dir': 'jax-jaxlib-v%(version)s',
# Avoid warning (treated as error) in upb/table.c
'buildopts': local_repo_opt + ' --bazel_options="--copt=-Wno-maybe-uninitialized"'
}),
]

exts_list = [
(name, version, {
'patches': ['jax-0.4.25_fix_env_test_no_log_spam.patch'],
'source_tmpl': '%(name)s-v%(version)s.tar.gz',
'source_urls': ['https://github.com/google/jax/archive/'],
'checksums': [
{'jax-v0.4.25.tar.gz': '8b30af49688c0c13b82c6f5ce992727c00b5fc6d04a4c6962012f4246fa664eb'},
{'jax-0.4.25_fix_env_test_no_log_spam.patch':
'a18b5f147569d9ad41025124333a0f04fd0d0e0f9e4309658d7f6b9b838e2e2a'},
],
}),
]

sanity_pip_check = True

moduleclass = 'tools'
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Add missing value for System Pybind11 Bazel config

Author: Alexander Grund (TU Dresden)

diff --git a/third_party/xla/fix-pybind11-systemlib.patch b/third_party/xla/fix-pybind11-systemlib.patch
new file mode 100644
index 000000000..68bd2063d
--- /dev/null
+++ b/third_party/xla/fix-pybind11-systemlib.patch
@@ -0,0 +1,13 @@
+--- xla-orig/third_party/tsl/third_party/systemlibs/pybind11.BUILD
++++ xla-4ccfe33c71665ddcbca5b127fefe8baa3ed632d4/third_party/tsl/third_party/systemlibs/pybind11.BUILD
+@@ -6,3 +6,10 @@
+ "@tsl//third_party/python_runtime:headers",
+ ],
+ )
++
++# Needed by pybind11_bazel.
++config_setting(
++ name = "osx",
++ constraint_values = ["@platforms//os:osx"],
++)
++
diff --git a/third_party/xla/workspace.bzl b/third_party/xla/workspace.bzl
index ebc8d9838..125e1c173 100644
--- a/third_party/xla/workspace.bzl
+++ b/third_party/xla/workspace.bzl
@@ -29,6 +29,9 @@ def repo():
sha256 = XLA_SHA256,
strip_prefix = "xla-{commit}".format(commit = XLA_COMMIT),
urls = tf_mirror_urls("https://github.com/openxla/xla/archive/{commit}.tar.gz".format(commit = XLA_COMMIT)),
+ patch_file = [
+ "//third_party/xla:fix-pybind11-systemlib.patch",
+ ],
)

# For development, one often wants to make changes to the TF repository as well

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/03
# avoid overriding LD_LIBRARY_PATH, which would lead to test error: error while loading shared libraries: libpython3.11.so.1.0: cannot open shared object file: No such file or directory'
diff -ru jax-jax-v0.4.25/tests/logging_test.py jax-jax-v0.4.25_fix_env_test_no_log_spam/tests/logging_test.py
--- jax-jax-v0.4.25/tests/logging_test.py 2024-02-24 19:25:17.000000000 +0100
+++ jax-jax-v0.4.25_fix_env_test_no_log_spam/tests/logging_test.py 2024-03-15 12:00:34.133022613 +0100
@@ -72,8 +72,11 @@
python = sys.executable
assert "python" in python
# Make sure C++ logging is at default level for the test process.
+ import os
+ tmp_env=os.environ.copy()
+ tmp_env['TF_CPP_MIN_LOG_LEVEL']='1'
proc = subprocess.run([python, "-c", program], capture_output=True,
- env={"TF_CPP_MIN_LOG_LEVEL": "1"})
+ env=tmp_env)

lines = proc.stdout.split(b"\n")
lines.extend(proc.stderr.split(b"\n"))
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
easyblock = 'PythonBundle'

name = 'ml-collections'
version = '0.1.1'

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': '2023a'}

dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('PyYAML', '6.0'),
]

use_pip = True

exts_list = [
('absl-py', '2.1.0', {
'modulename': 'absl',
'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
}),
('contextlib2', '21.6.0', {
'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
}),
('ml_collections', version, {
'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
}),
]

sanity_pip_check = True

moduleclass = 'vis'
42 changes: 42 additions & 0 deletions easybuild/easyconfigs/o/Optax/Optax-0.2.2-foss-2023a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
easyblock = 'PythonBundle'

name = 'Optax'
version = '0.2.2'

homepage = 'https://github.com/deepmind/optax'
description = """Optax is a gradient processing and optimization library for JAX."""

toolchain = {'name': 'foss', 'version': '2023a'}

dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('jax', '0.4.25'),
]

use_pip = True

exts_list = [
('toolz', '0.12.1', {
'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
}),
('flit_core', '3.9.0', {
'checksums': ['72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba'],
}),
('absl-py', '2.1.0', {
'modulename': 'absl',
'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
}),
('chex', '0.1.86', {
'checksums': ['e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1'],
}),
('optax', version, {
'checksums': ['f09bf790ef4b09fb9c35f79a07594c6196a719919985f542dc84b0bf97812e0e'],
}),
]

sanity_pip_check = True

sanity_check_commands = ["python -c 'from optax import GradientTransformation'"]

moduleclass = 'lib'
52 changes: 52 additions & 0 deletions easybuild/easyconfigs/s/scArches/scArches-0.6.1-foss-2023a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
easyblock = 'PythonBundle'

name = 'scArches'
version = '0.6.1'

homepage = 'https://github.com/theislab/scarches'
description = """Single-cell architecture surgery (scArches) is a package for reference-based analysis of single-cell
data."""

toolchain = {'name': 'foss', 'version': '2023a'}

dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('Python-bundle-PyPI', '2023.06'),
('matplotlib', '3.7.2'),
('anndata', '0.10.5.post1'),
('h5py', '3.9.0'),
('leidenalg', '0.10.2'),
('scanpy', '1.9.8'),
('scikit-learn', '1.3.1'),
('scvi-tools', '1.1.2'),
('PyTorch', '2.1.2'),
('tqdm', '4.66.1'),
]

use_pip = True

exts_list = [
('gdown', '5.1.0', {
'checksums': ['550a72dc5ca2819fe4bcc15d80d05d7c98c0b90e57256254b77d0256b9df4683'],
}),
('muon', '0.1.6', {
'checksums': ['762feeb6f52f865cf79d0d0332cc742fe91c1885f668ce15794b62b3952b02f9'],
}),
('newick', '1.9.0', {
'checksums': ['9f81be96ec86aefca74d920fc0d6962d89a3156547003ca6915c2e6e31ad3ddf'],
}),
('scHPL', '1.0.5', {
'modulename': 'scHPL',
# unpin pandas and newick versions to be compatible with foss/2023a versions
'preinstallopts': "sed -i 's/~=/>=/g' setup.py && sed -i 's/pandas>=1.1.2,<2/pandas/g' setup.py && ",
'checksums': ['3eb62b2e65b1faba04b7bcb86f7bf6967a6301866a605551211b8f14fd27eced'],
}),
(name, version, {
'checksums': ['187463c25781d5c5586c129ad137d96327a9f8604d530a696d5f568a9225d77c'],
}),
]

sanity_pip_check = True

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
easyblock = 'PythonBundle'

name = 'scib-metrics'
version = '0.5.1'

homepage = 'https://scib-metrics.readthedocs.io'
description = "Accelerated and Python-only metrics for benchmarking single-cell integration outputs"

toolchain = {'name': 'foss', 'version': '2023a'}

builddependencies = [
('hatchling', '1.18.0'),
('poetry', '1.5.1'),
]
dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('anndata', '0.10.5.post1'),
('jax', '0.4.25'),
('scikit-learn', '1.3.1'),
('scanpy', '1.9.8'),
('python-igraph', '0.11.4'),
('matplotlib', '3.7.2'),
('tqdm', '4.66.1'),
('umap-learn', '0.5.5'),
]

use_pip = True

exts_list = [
('toolz', '0.12.1', {
'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
}),
('plottable', '0.1.5', {
'checksums': ['235d762a31c82129dc5bf74205c103a14b1e4393d0f921cc0231be5de884041d'],
}),
('pynndescent', '0.5.11', {
'checksums': ['6f44ced9d5a9da2c87d9b2fff30bb5308540c0657605e4d5cde7ed3275bbad50'],
}),
('rich', '13.7.1', {
'checksums': ['9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432'],
}),
('chex', '0.1.86', {
'checksums': ['e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1'],
}),
(name, version, {
'sources': ['scib_metrics-%(version)s.tar.gz'],
'checksums': ['74d10251acf1c11402b994faf063e55317881d7950fb78f6cef011d232a1e266'],
}),
]

sanity_pip_check = True

moduleclass = 'bio'
Loading
Loading