From 040562e34fefa526d6a3cd17713345e91b5704f5 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 19 Dec 2024 16:11:35 +0100 Subject: [PATCH 01/37] adding easyconfigs: AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb, jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb and patches: jax-triton-0.1.1_ignore_missing_torch.patch --- ...AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 60 +++++++++++++++++++ ...jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb | 43 +++++++++++++ ...ax-triton-0.1.1_ignore_missing_torch.patch | 38 ++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb create mode 100644 easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb create mode 100644 easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..ac62633f0d2f --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,60 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 +# +# DRAFT! +easyblock = 'PythonBundle' + +name = 'AlphaFold3' +version = '3.0.0' +versionsuffix = '-CUDA-%(cudaver)s' +homepage = 'https://deepmind.google/technologies/alphafold' +description = """This package provides an implementation of the inference pipeline of AlphaFold +3. See below for how to access the model parameters. You may only use AlphaFold +3 model parameters if received directly from Google. Use is subject to these +terms of use: +https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +github_account = 'google-deepmind' +use_pip = True + +builddependencies = [ + ('scikit-build', '0.17.6'), + ('poetry', '1.8.3'), + ('Python-bundle-PyPI', '2024.06'), + ('scikit-build-core', '0.10.6'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('jax', '0.4.35', versionsuffix), + ('dm-tree', '0.1.8'), + ('dm-haiku', '0.0.13', versionsuffix), + ('RDKit', '2024.03.5'), + ('jax-triton', '0.1.1', versionsuffix), + # TODO +] + +exts_list = [ + ('chex', '0.1.87', { + 'checksums': ['0096d89cc8d898bb521ef4bfbf5c24549022b0e5b301f529ab57238896fe6c5d'], + }), + (name, version, { + 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], + 'sources': ['v%(version)s.tar.gz'], + # 'patches': ['%(name)s-%(versions)s_relax_requirements.patch'] + 'checksums': ['f4fde43daf4cdf25e4da712f440b8aa8bd8798e2be936a254a562f6cb6eb32df'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +# sanity_check_cmds = [] # TODO + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..92d37f92426a --- /dev/null +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'jax-triton' +version = '0.1.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pypi.org/project/jax-triton' +description = """The jax-triton repository contains integrations between JAX and Triton.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('jax', '0.4.35', versionsuffix), + ('Triton', '3.1.0', versionsuffix), +] + +use_pip = True + +_preinstallopts = 'sed -i "s/^requires-python/#&/g" pyproject.toml &&' + +exts_list = [ + (name, version, { + 'modulename': 'jax_triton', + 'patches': ['jax-triton-0.1.1_ignore_missing_torch.patch'], + 'preinstallopts': _preinstallopts, + 'checksums': [ + {'jax-triton-0.1.1.tar.gz': '1d3406e81bf8a2268a4d7688a8ab7e2c10893c5939f5ba56c1d706fa4c377fa0'}, + {'jax-triton-0.1.1_ignore_missing_torch.patch': + '22ddca25d2b1c2e80685367b0b8aea97328f9bbca96f7444574034eafa03f154'}, + ], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch new file mode 100644 index 000000000000..bc166c8158a8 --- /dev/null +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch @@ -0,0 +1,38 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 +# fix: import jax_triton sanity check fails, if PyTorch is not loaded. + +diff -ru jax-triton-0.1.1/jax_triton/triton_call.py jax-triton-0.1.1_ignore_missing_torch/jax_triton/triton_call.py +--- jax-triton-0.1.1/jax_triton/triton_call.py 2022-09-13 06:27:46.000000000 +0200 ++++ jax-triton-0.1.1_ignore_missing_torch/jax_triton/triton_call.py 2024-12-19 15:47:16.069571976 +0100 +@@ -26,11 +26,15 @@ + from jax.interpreters import mlir + from jax import tree_util + from jax._src import util +-from jax._src.lib import xla_bridge as xb ++from jax.lib import xla_bridge as xb + from jax._src.lib.mlir import ir + from jax._src.lib.mlir.dialects import mhlo + import numpy as np +-import torch ++_has_torch=True ++try: ++ import torch ++except: ++ _has_torch = False + import triton + import triton.language as tl + +@@ -109,8 +113,11 @@ + dump_binary_path=dump_binary_path, **metaparams) + return tree_util.tree_unflatten(out_tree, out_flat) + +-table = {'float32': torch.float32, 'int32': torch.int32, 'float16': torch.float16, +- 'float64': torch.float64, 'int64': torch.int64 } ++table = {} ++ ++if _has_torch: ++ table = {'float32': torch.float32, 'int32': torch.int32, 'float16': torch.float16, ++ 'float64': torch.float64, 'int64': torch.int64 } + + @triton_call_p.def_impl + def triton_call_impl(*args, kernel, out_shapes, grid, dump_binary_path, **metaparams): From b9ace5259442767dc8339083e315740a8d47ac3e Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 19 Dec 2024 16:31:19 +0100 Subject: [PATCH 02/37] add tqdm dep; update jax-triton to v0.2.0 --- ...AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 3 +- ...jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb index ac62633f0d2f..bbf14419dafc 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -28,11 +28,12 @@ builddependencies = [ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), + ('tqdm', '4.67.0'), ('jax', '0.4.35', versionsuffix), ('dm-tree', '0.1.8'), ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.03.5'), - ('jax-triton', '0.1.1', versionsuffix), + ('jax-triton', '0.2.0', versionsuffix), # TODO ] diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..e1dd8fe3d96f --- /dev/null +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,36 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 + +easyblock = 'PythonBundle' + +name = 'jax-triton' +version = '0.2.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pypi.org/project/jax-triton' +description = """The jax-triton repository contains integrations between JAX and Triton.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('jax', '0.4.35', versionsuffix), + ('Triton', '3.1.0', versionsuffix), +] + +use_pip = True + +exts_list = [ + ('jax_triton', version, { + 'checksums': ['ed564a5ffb9e404557dc8d296e7eb30e501da5a4d7b03408acd0837c1c618c21'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'ai' From 92560d56995d21ca9468297e30a72b2bd14d26a3 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 19 Dec 2024 16:32:02 +0100 Subject: [PATCH 03/37] Delete easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb --- ...jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb deleted file mode 100644 index 92d37f92426a..000000000000 --- a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1-foss-2024a-CUDA-12.6.0.eb +++ /dev/null @@ -1,43 +0,0 @@ -easyblock = 'PythonBundle' - -name = 'jax-triton' -version = '0.1.1' -versionsuffix = '-CUDA-%(cudaver)s' - -homepage = 'https://pypi.org/project/jax-triton' -description = """The jax-triton repository contains integrations between JAX and Triton.""" - -toolchain = {'name': 'foss', 'version': '2024a'} - -dependencies = [ - ('Python', '3.12.3'), - ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.35', versionsuffix), - ('Triton', '3.1.0', versionsuffix), -] - -use_pip = True - -_preinstallopts = 'sed -i "s/^requires-python/#&/g" pyproject.toml &&' - -exts_list = [ - (name, version, { - 'modulename': 'jax_triton', - 'patches': ['jax-triton-0.1.1_ignore_missing_torch.patch'], - 'preinstallopts': _preinstallopts, - 'checksums': [ - {'jax-triton-0.1.1.tar.gz': '1d3406e81bf8a2268a4d7688a8ab7e2c10893c5939f5ba56c1d706fa4c377fa0'}, - {'jax-triton-0.1.1_ignore_missing_torch.patch': - '22ddca25d2b1c2e80685367b0b8aea97328f9bbca96f7444574034eafa03f154'}, - ], - }), -] - -sanity_pip_check = True - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib'], -} - -moduleclass = 'ai' From 8e21bd7ccc543ab86d625375038521bae99f5b44 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 19 Dec 2024 16:32:19 +0100 Subject: [PATCH 04/37] Delete easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch --- ...ax-triton-0.1.1_ignore_missing_torch.patch | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch deleted file mode 100644 index bc166c8158a8..000000000000 --- a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.1.1_ignore_missing_torch.patch +++ /dev/null @@ -1,38 +0,0 @@ -# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 -# fix: import jax_triton sanity check fails, if PyTorch is not loaded. - -diff -ru jax-triton-0.1.1/jax_triton/triton_call.py jax-triton-0.1.1_ignore_missing_torch/jax_triton/triton_call.py ---- jax-triton-0.1.1/jax_triton/triton_call.py 2022-09-13 06:27:46.000000000 +0200 -+++ jax-triton-0.1.1_ignore_missing_torch/jax_triton/triton_call.py 2024-12-19 15:47:16.069571976 +0100 -@@ -26,11 +26,15 @@ - from jax.interpreters import mlir - from jax import tree_util - from jax._src import util --from jax._src.lib import xla_bridge as xb -+from jax.lib import xla_bridge as xb - from jax._src.lib.mlir import ir - from jax._src.lib.mlir.dialects import mhlo - import numpy as np --import torch -+_has_torch=True -+try: -+ import torch -+except: -+ _has_torch = False - import triton - import triton.language as tl - -@@ -109,8 +113,11 @@ - dump_binary_path=dump_binary_path, **metaparams) - return tree_util.tree_unflatten(out_tree, out_flat) - --table = {'float32': torch.float32, 'int32': torch.int32, 'float16': torch.float16, -- 'float64': torch.float64, 'int64': torch.int64 } -+table = {} -+ -+if _has_torch: -+ table = {'float32': torch.float32, 'int32': torch.int32, 'float16': torch.float16, -+ 'float64': torch.float64, 'int64': torch.int64 } - - @triton_call_p.def_impl - def triton_call_impl(*args, kernel, out_shapes, grid, dump_binary_path, **metaparams): From 66cfa97fa869457c0374b7c63f87ca1e80045e4d Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 19 Dec 2024 17:07:20 +0100 Subject: [PATCH 05/37] add jaxtyping v0.2.36 --- ...AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 2 + ...jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb index bbf14419dafc..9dbff2b8e986 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -34,10 +34,12 @@ dependencies = [ ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.03.5'), ('jax-triton', '0.2.0', versionsuffix), + ('jaxtyping', '0.2.36', versionsuffix), # TODO ] exts_list = [ + ('zstandard', '0.23.0'), ('chex', '0.1.87', { 'checksums': ['0096d89cc8d898bb521ef4bfbf5c24549022b0e5b301f529ab57238896fe6c5d'], }), diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..2e658c01bf52 --- /dev/null +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,40 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 + +easyblock = 'PythonBundle' + +name = 'jaxtyping' +version = '0.2.36' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/patrick-kidger/jaxtyping' +description = """ Type annotations and runtime type-checking for: +1. shape and dtype of JAX arrays; + (Now also supports PyTorch, NumPy, and TensorFlow!) +2. PyTrees. """ +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('poetry', '1.8.3') +] +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('jax', '0.4.35', versionsuffix), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['781ac44a3cf8982063d7ee48b5008ccfad7b13793bf878eb3058d5319aa08f0f'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'ai' From 71d2f46a4a620b8310dea3cef7d6f53a5ff706c7 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 19 Dec 2024 17:14:23 +0100 Subject: [PATCH 06/37] relax requirements patch --- ...AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 12 +++++++++--- .../AlphaFold3-3.0.0_relax_requirements.patch | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb index 9dbff2b8e986..bac65b6fcccf 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -39,15 +39,21 @@ dependencies = [ ] exts_list = [ - ('zstandard', '0.23.0'), + ('zstandard', '0.23.0', { + 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], + }), ('chex', '0.1.87', { 'checksums': ['0096d89cc8d898bb521ef4bfbf5c24549022b0e5b301f529ab57238896fe6c5d'], }), (name, version, { + 'patches': ['%(name)s-%(version)s_relax_requirements.patch'], 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], 'sources': ['v%(version)s.tar.gz'], - # 'patches': ['%(name)s-%(versions)s_relax_requirements.patch'] - 'checksums': ['f4fde43daf4cdf25e4da712f440b8aa8bd8798e2be936a254a562f6cb6eb32df'], + 'checksums': [ + {'v3.0.0.tar.gz': 'f4fde43daf4cdf25e4da712f440b8aa8bd8798e2be936a254a562f6cb6eb32df'}, + {'AlphaFold3-3.0.0_relax_requirements.patch': + 'ea2c11638dfc60e51753301412a1867d17b4f772bdfe6a2c834f8bfa8310646d'}, + ], }), ] diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch new file mode 100644 index 000000000000..fb0a2cd28b23 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch @@ -0,0 +1,19 @@ +diff -ru alphafold3-3.0.0/pyproject.toml alphafold3-3.0.0_relax_requirements/pyproject.toml +--- alphafold3-3.0.0/pyproject.toml 2024-11-11 11:42:47.000000000 +0100 ++++ alphafold3-3.0.0_relax_requirements/pyproject.toml 2024-12-19 17:09:46.784161491 +0100 +@@ -19,12 +19,12 @@ + "chex", + "dm-haiku==0.0.13", + "dm-tree", +- "jax==0.4.34", +- "jax[cuda12]==0.4.34", ++ "jax>=0.4.34", ++ #"jax[cuda12]==0.4.34", + "jax-triton==0.2.0", + "jaxtyping", + "numpy", +- "rdkit==2024.3.5", ++ "rdkit", + "triton==3.1.0", + "tqdm", + "zstandard", From 2e9b03532b5842458ad2f2a70ad1243738f849d0 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:33:20 +0100 Subject: [PATCH 07/37] Update AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb --- .../a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb index bac65b6fcccf..6e850f32d28a 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -29,7 +29,7 @@ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), ('tqdm', '4.67.0'), - ('jax', '0.4.35', versionsuffix), + ('jax', '0.4.34', versionsuffix), ('dm-tree', '0.1.8'), ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.03.5'), From 50ee22bcbeb7034480c1d24705313de89ca46c8a Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:33:39 +0100 Subject: [PATCH 08/37] Update jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb --- .../j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb index e1dd8fe3d96f..9c2bfdbe03a1 100644 --- a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'foss', 'version': '2024a'} dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.35', versionsuffix), + ('jax', '0.4.34', versionsuffix), ('Triton', '3.1.0', versionsuffix), ] From 16ce21b3a7b132773ae667578710451fcfa5a31e Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:33:57 +0100 Subject: [PATCH 09/37] Update jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb --- .../j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb index 2e658c01bf52..31a63906412a 100644 --- a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb @@ -19,7 +19,7 @@ builddependencies = [ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.35', versionsuffix), + ('jax', '0.4.34', versionsuffix), ] use_pip = True From 1401ca6d03b183d1ad384ac02b428dca6184b06f Mon Sep 17 00:00:00 2001 From: thoffman Date: Fri, 20 Dec 2024 16:09:30 +0100 Subject: [PATCH 10/37] add dm-tree v0.1.8 --- .../d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb | 35 +++++ .../d/dm-tree/dm-tree-0.1.8_pybind11.patch | 140 ++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb create mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb new file mode 100644 index 000000000000..7d7f0a798255 --- /dev/null +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'dm-tree' +version = '0.1.8' + +homepage = 'https://github.com/deepmind/tree' +description = """dm-tree provides tree, a library for working with nested data structures. In a way, +tree generalizes the builtin map function which only supports flat sequences, and +allows to apply a function to each "leaf" preserving the overall structure.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +patches = ['dm-tree-0.1.8_pybind11.patch'] +checksums = [ + {'dm-tree-0.1.8.tar.gz': '0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430'}, + {'dm-tree-0.1.8_pybind11.patch': '1ed433eda86d46333d735dfea9eecf9d007ba0ca8b1bc610c6f02cd478b8d131'}, +] + +builddependencies = [ + ('pybind11', '2.12.0'), +] +dependencies = [ + ('Python', '3.12.3'), + ('Abseil', '20240722.0'), +] + +download_dep_fail = True + +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'tree'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch new file mode 100644 index 000000000000..d259db0f551b --- /dev/null +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch @@ -0,0 +1,140 @@ +# Taken from: https://data.gpo.zugaina.org/benzene-overlay/dev-python/dm-tree/files/dm-tree-0.1.8-Simplify-setup.py-by-using-pybind11.setup_helpers.Py.patch +From: Michael Fladischer +Date: Mon, 31 Jul 2023 21:13:42 +0000 +Subject: Simplify setup.py by using pybind11.setup_helpers.Pybind11Extension. + +--- + setup.py | 103 ++++++++++++--------------------------------------------------- + 1 file changed, 19 insertions(+), 84 deletions(-) + +diff --git a/setup.py b/setup.py +index d1862a1..8381bff 100644 +--- a/setup.py ++++ b/setup.py +@@ -15,14 +15,10 @@ + """Setup for pip package.""" + + import os +-import platform +-import shutil +-import subprocess +-import sys +-import sysconfig + +-import setuptools +-from setuptools.command import build_ext ++from setuptools import find_packages, setup ++from pybind11.setup_helpers import Pybind11Extension, build_ext ++ + + here = os.path.dirname(os.path.abspath(__file__)) + +@@ -48,80 +44,7 @@ def _parse_requirements(path): + ] + + +-class CMakeExtension(setuptools.Extension): +- """An extension with no sources. +- +- We do not want distutils to handle any of the compilation (instead we rely +- on CMake), so we always pass an empty list to the constructor. +- """ +- +- def __init__(self, name, source_dir=''): +- super().__init__(name, sources=[]) +- self.source_dir = os.path.abspath(source_dir) +- +- +-class BuildCMakeExtension(build_ext.build_ext): +- """Our custom build_ext command. +- +- Uses CMake to build extensions instead of a bare compiler (e.g. gcc, clang). +- """ +- +- def run(self): +- self._check_build_environment() +- for ext in self.extensions: +- self.build_extension(ext) +- +- def _check_build_environment(self): +- """Check for required build tools: CMake, C++ compiler, and python dev.""" +- try: +- subprocess.check_call(['cmake', '--version']) +- except OSError as e: +- ext_names = ', '.join(e.name for e in self.extensions) +- raise RuntimeError( +- f'CMake must be installed to build the following extensions: {ext_names}' +- ) from e +- print('Found CMake') +- +- def build_extension(self, ext): +- extension_dir = os.path.abspath( +- os.path.dirname(self.get_ext_fullpath(ext.name))) +- build_cfg = 'Debug' if self.debug else 'Release' +- cmake_args = [ +- f'-DPython3_ROOT_DIR={sys.prefix}', +- f'-DPython3_EXECUTABLE={sys.executable}', +- f'-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={extension_dir}', +- f'-DCMAKE_BUILD_TYPE={build_cfg}' +- ] +- if platform.system() != 'Windows': +- cmake_args.extend([ +- f'-DPython3_LIBRARY={sysconfig.get_paths()["stdlib"]}', +- f'-DPython3_INCLUDE_DIR={sysconfig.get_paths()["include"]}', +- ]) +- if platform.system() == 'Darwin' and os.environ.get('ARCHFLAGS'): +- osx_archs = [] +- if '-arch x86_64' in os.environ['ARCHFLAGS']: +- osx_archs.append('x86_64') +- if '-arch arm64' in os.environ['ARCHFLAGS']: +- osx_archs.append('arm64') +- cmake_args.append(f'-DCMAKE_OSX_ARCHITECTURES={";".join(osx_archs)}') +- os.makedirs(self.build_temp, exist_ok=True) +- subprocess.check_call( +- ['cmake', ext.source_dir] + cmake_args, cwd=self.build_temp) +- subprocess.check_call( +- ['cmake', '--build', '.', f'-j{os.cpu_count()}', '--config', build_cfg], +- cwd=self.build_temp) +- +- # Force output to /. Amends CMake multigenerator output paths +- # on Windows and avoids Debug/ and Release/ subdirs, which is CMake default. +- tree_dir = os.path.join(extension_dir, 'tree') # pylint:disable=unreachable +- for cfg in ('Release', 'Debug'): +- cfg_dir = os.path.join(extension_dir, cfg) +- if os.path.isdir(cfg_dir): +- for f in os.listdir(cfg_dir): +- shutil.move(os.path.join(cfg_dir, f), tree_dir) +- +- +-setuptools.setup( ++setup( + name='dm-tree', + version=_get_tree_version(), + url='https://github.com/deepmind/tree', +@@ -131,11 +54,23 @@ setuptools.setup( + long_description=open(os.path.join(here, 'README.md')).read(), + long_description_content_type='text/markdown', + # Contained modules and scripts. +- packages=setuptools.find_packages(), ++ packages=find_packages(), + tests_require=_parse_requirements('requirements-test.txt'), + test_suite='tree', +- cmdclass=dict(build_ext=BuildCMakeExtension), +- ext_modules=[CMakeExtension('_tree', source_dir='tree')], ++ cmdclass={"build_ext": build_ext}, ++ ext_modules=[ ++ Pybind11Extension( ++ 'tree._tree', ++ sources=['tree/tree.cc'], ++ libraries=[ ++ 'absl_int128', ++ 'absl_raw_hash_set', ++ 'absl_raw_logging_internal', ++ 'absl_strings', ++ 'absl_throw_delegate', ++ ] ++ ) ++ ], + zip_safe=False, + # PyPI package information. + classifiers=[ From afa90f7980d17c30f45ec8a0be628ee493b20433 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:58:27 +0100 Subject: [PATCH 11/37] Update AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb modextravars acc. to https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md --- .../AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb index 6e850f32d28a..3a1534e9924e 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb @@ -66,4 +66,15 @@ sanity_check_paths = { # sanity_check_cmds = [] # TODO +modextravars = { + # acc. to: https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags + 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false', + # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: + 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', + # Unified memory: + 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', + 'TF_FORCE_UNIFIED_MEMORY', 'true', + 'XLA_CLIENT_MEM_FRACTION=3.2', +} + moduleclass = 'bio' From 1a56d291a24914af4b07258a3ee475d6485ac283 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 16 Jan 2025 15:54:33 +0100 Subject: [PATCH 12/37] update to 2025/01/09 to fix libcifpp problems --- ...3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb | 126 ++++++++++++++++++ .../AlphaFold3-3.0.0.20250109_data_path.patch | 95 +++++++++++++ ...d3-3.0.0.20250109_relax_requirements.patch | 30 +++++ .../AlphaFold3-3.0.0_disable_fetch.patch | 20 +++ 4 files changed, 271 insertions(+) create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_data_path.patch create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_relax_requirements.patch create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_disable_fetch.patch diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..c02e18d0cc0c --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,126 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 +# +# DRAFT! +easyblock = 'PythonBundle' + +name = 'AlphaFold3' +# this commit includes fix for https://github.com/google-deepmind/alphafold3/issues/33# and others...: +_commit = 'ea040346e10db1759170e723ef263316e64aa768' +_commit_date = '20250109' +_version = '3.0.0' +version = '%s.%s' % (_version, _commit_date) +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://deepmind.google/technologies/alphafold' +description = """This package provides an implementation of the inference pipeline of AlphaFold +3. See below for how to access the model parameters. You may only use AlphaFold +3 model parameters if received directly from Google. Use is subject to these +terms of use: +https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +github_account = 'google-deepmind' +use_pip = True + +builddependencies = [ + ('scikit-build', '0.17.6'), + ('poetry', '1.8.3'), + ('Python-bundle-PyPI', '2024.06'), + ('scikit-build-core', '0.10.6'), + ('pybind11', '2.13.6'), + ('pybind11_abseil', '202402.0'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('tqdm', '4.67.0'), + ('jax', '0.4.34', versionsuffix), + ('dm-tree', '0.1.8'), + ('dm-haiku', '0.0.13', versionsuffix), + ('RDKit', '2024.03.5'), + ('jax-triton', '0.2.0', versionsuffix), + ('jaxtyping', '0.2.36', versionsuffix), + ('dssp', '4.4.10'), + ('Abseil', '20240722.0'), + ('HMMER', '3.4') +] +exts_list = [ + ('zstandard', '0.23.0', { + 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], + }), + ('typeguard', '2.13.3', { + 'checksums': ['00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4'], + }), + (name, version, { + 'patches': [ + '%(name)s-%(version)s_relax_requirements.patch', + '%(name)s-3.0.0_disable_fetch.patch', + '%(name)s-%(version)s_data_path.patch', + ], + 'postinstallcmds': [ + 'cp run_alphafold.py %(installdir)s/bin', + 'chmod +x %(installdir)s/bin/run_alphafold.py', + '%(installdir)s/bin/build_data', + ], + 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], + 'sources': [{ + 'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', + 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz'}], + 'checksums': [ + {'AlphaFold3-3.0.0.20250109-20250109.ea04034.tar.gz': + '6bcf9392be402cba9a506fbfbeb8fd4b990b0ea7c40bd77d0424d83a71db3658'}, + {'AlphaFold3-3.0.0.20250109_relax_requirements.patch': + '4c96c6d35542953d7dbae5cc43e0273c653430c472ffd4f5444d9096d83f00a2'}, + {'AlphaFold3-3.0.0_disable_fetch.patch': + 'e26da6d3a244ebf4185b7c8833326a5011a8af6f449eb6535c4147416336dd27'}, + {'AlphaFold3-3.0.0.20250109_data_path.patch': + '00a71f24f430429bb8d432ee67253d29858c30fc7925e174fcb7e862285c8528'}, + ], + }), +] + +fix_python_shebang_for = ['bin/run_alphafold.py'] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/run_alphafold.py'], + 'dirs': ['lib'], +} +sanity_check_commands = [ + ('run_alphafold.py --help|grep "AlphaFold 3 structure prediction script"') +] + +modextravars = { + 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % _version, # adapt + # acc. to: + # https://github.com/google-deepmind/alphafold3/ + # blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags + 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false ', + # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: + # 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', + # Unified memory: + 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', + 'TF_FORCE_UNIFIED_MEMORY': 'true', + 'XLA_CLIENT_MEM_FRACTION': '3.2', +} + +modluafooter = """ +setenv("AF3_MODEL_DIR", os.getenv("HOME") .. "/.alphfold3/models"); +eb_tmpdir = os.getenv("TMPDIR") +if not eb_tmpdir then eb_tmpdir='/tmp' end +setenv("TRITON_HOME", eb_tmpdir .. "/" .. os.getenv("USER") .. "/triton_home") +""" + +modtclfooter = """ +setenv AF3_MODEL_DIR $::env(HOME)/.alphafold3/models +if { [info exists ::env(TMPDIR)] } { + setenv AF3_MODEL_DIR $::env(TMPDIR)/$::env(USER)/triton_home +} else { + setenv AF3_MODEL_DIR /tmp/$::env(USER)/triton_home +} +""" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_data_path.patch b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_data_path.patch new file mode 100644 index 000000000000..25a8d124a8f7 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_data_path.patch @@ -0,0 +1,95 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2025/01 +# - additionally search libciffpp components.cif in path definded by +# environment variable LIBCIFPP_DATA_DIR +# - allow to set default model dir and public databases dir by environment +# variables AF3_MODEL_DIR and DB_DIR, respectively. +diff -ru alphafold3-ea040346e10db1759170e723ef263316e64aa768/run_alphafold.py alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/run_alphafold.py +--- alphafold3-ea040346e10db1759170e723ef263316e64aa768/run_alphafold.py 2025-01-09 13:59:41.000000000 +0100 ++++ alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/run_alphafold.py 2025-01-15 18:48:19.060274236 +0100 +@@ -55,8 +55,14 @@ + + + _HOME_DIR = pathlib.Path(os.environ.get('HOME')) +-_DEFAULT_MODEL_DIR = _HOME_DIR / 'models' +-_DEFAULT_DB_DIR = _HOME_DIR / 'public_databases' ++_DEFAULT_MODEL_DIR = os.environ.get('AF3_MODEL_DIR') ++if _DEFAULT_MODEL_DIR == None: ++ _DEFAULT_MODEL_DIR = _HOME_DIR / 'models' ++else: _DEFAULT_MODEL_DIR = pathlib.Path(_DEFAULT_MODEL_DIR) ++_DEFAULT_DB_DIR = os.environ.get('DB_DIR') ++if _DEFAULT_DB_DIR == None: ++ _DEFAULT_DB_DIR = _HOME_DIR / 'public_databases' ++else: _DEFAULT_DB_DIR = pathlib.Path(_DEFAULT_DB_DIR) + + + # Input and output paths. +diff -ru alphafold3-ea040346e10db1759170e723ef263316e64aa768/src/alphafold3/build_data.py alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/src/alphafold3/build_data.py +--- alphafold3-ea040346e10db1759170e723ef263316e64aa768/src/alphafold3/build_data.py 2025-01-09 13:59:41.000000000 +0100 ++++ alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/src/alphafold3/build_data.py 2025-01-15 18:04:26.440308446 +0100 +@@ -17,16 +17,21 @@ + import alphafold3.constants.converters + from alphafold3.constants.converters import ccd_pickle_gen + from alphafold3.constants.converters import chemical_component_sets_gen +- ++from os import getenv + + def build_data(): + """Builds intermediate data.""" +- for site_path in site.getsitepackages(): +- path = pathlib.Path(site_path) / 'share/libcifpp/components.cif' +- if path.exists(): +- cif_path = path +- break ++ cif_path = None ++ if getenv('LIBCIFPP_DATA_DIR'): ++ path = getenv('LIBCIFPP_DATA_DIR') + '/components.cif' ++ cif_path = path + else: ++ for site_path in site.getsitepackages(): ++ path = pathlib.Path(site_path) / 'share/libcifpp/components.cif' ++ if path.exists(): ++ cif_path = path ++ break ++ if (not cif_path): + raise ValueError('Could not find components.cif') + + out_root = resources.files(alphafold3.constants.converters) +diff -ru alphafold3-ea040346e10db1759170e723ef263316e64aa768/src/alphafold3/model/mkdssp_pybind.cc alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/src/alphafold3/model/mkdssp_pybind.cc +--- alphafold3-ea040346e10db1759170e723ef263316e64aa768/src/alphafold3/model/mkdssp_pybind.cc 2025-01-09 13:59:41.000000000 +0100 ++++ alphafold3-ea040346e10db1759170e723ef263316e64aa768_data_path/src/alphafold3/model/mkdssp_pybind.cc 2025-01-15 14:34:35.267983665 +0100 +@@ -27,20 +27,23 @@ + void RegisterModuleMkdssp(pybind11::module m) { + py::module site = py::module::import("site"); + py::list paths = py::cast(site.attr("getsitepackages")()); ++ const char* libcifpp_data_dir_p = std::getenv("LIBCIFPP_DATA_DIR"); ++ if (!libcifpp_data_dir_p) { + // Find the first path that contains the libcifpp components.cif file. +- bool found = false; +- for (const auto& py_path : paths) { +- auto path_str = +- std::filesystem::path(py::cast(py_path)) / +- "share/libcifpp/components.cif"; +- if (std::filesystem::exists(path_str)) { +- setenv("LIBCIFPP_DATA_DIR", path_str.parent_path().c_str(), 0); +- found = true; +- break; ++ bool found = false; ++ for (const auto& py_path : paths) { ++ auto path_str = ++ std::filesystem::path(py::cast(py_path)) / ++ "share/libcifpp/components.cif"; ++ if (std::filesystem::exists(path_str)) { ++ setenv("LIBCIFPP_DATA_DIR", path_str.parent_path().c_str(), 0); ++ found = true; ++ break; ++ } ++ } ++ if (!found) { ++ throw py::type_error("Could not find the libcifpp components.cif file."); + } +- } +- if (!found) { +- throw py::type_error("Could not find the libcifpp components.cif file."); + } + m.def( + "get_dssp", diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_relax_requirements.patch b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_relax_requirements.patch new file mode 100644 index 000000000000..b19db8f3d109 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109_relax_requirements.patch @@ -0,0 +1,30 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2025/01 +diff -ru alphafold3-ea040346e10db1759170e723ef263316e64aa768/pyproject.toml alphafold3-ea040346e10db1759170e723ef263316e64aa768_relax_requirements/pyproject.toml +--- alphafold3-ea040346e10db1759170e723ef263316e64aa768/pyproject.toml 2025-01-09 13:59:41.000000000 +0100 ++++ alphafold3-ea040346e10db1759170e723ef263316e64aa768_relax_requirements/pyproject.toml 2025-01-15 10:54:51.110182402 +0100 +@@ -17,17 +17,17 @@ + dependencies = [ + "absl-py", + "chex", +- "dm-haiku==0.0.13", ++ "dm-haiku>=0.0.13", + "dm-tree", +- "jax==0.4.34", +- "jax[cuda12]==0.4.34", +- "jax-triton==0.2.0", +- "jaxtyping==0.2.34", ++ "jax>=0.4.34", ++ #"jax[cuda12]==0.4.34", ++ "jax-triton>=0.2.0", ++ "jaxtyping>=0.2.34", + "numpy", +- "rdkit==2024.3.5", +- "triton==3.1.0", ++ "rdkit>=2024.3.5", ++ "triton>=3.1.0", + "tqdm", +- "typeguard==2.13.3", ++ "typeguard>=2.13.3", + "zstandard", + ] + diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_disable_fetch.patch b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_disable_fetch.patch new file mode 100644 index 000000000000..9145d18ef7fc --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_disable_fetch.patch @@ -0,0 +1,20 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2025/01 +# disable FetchContent for pybind11, abseil-cpp, pybind11_abseil, cifpp and dssp +# use find_package instead. +diff -ru alphafold3-3.0.0/CMakeLists.txt alphafold3-3.0.0_disable_fetch/CMakeLists.txt +--- alphafold3-3.0.0/CMakeLists.txt 2024-11-11 11:42:47.000000000 +0100 ++++ alphafold3-3.0.0_disable_fetch/CMakeLists.txt 2025-01-14 17:14:41.925312870 +0100 +@@ -54,8 +54,11 @@ + GIT_TAG 57560472b4260dc41f457706bc45fc6ef0bc0f10 # v4.4.7 + EXCLUDE_FROM_ALL) + +-FetchContent_MakeAvailable(pybind11 abseil-cpp pybind11_abseil cifpp dssp) +- ++#FetchContent_MakeAvailable(pybind11 abseil-cpp pybind11_abseil cifpp dssp) ++find_package(pybind11 CONFIG REQUIRED) ++find_package(absl CONFIG REQUIRED) ++find_package(pybind11_abseil CONFIG REQUIRED) ++find_package(dssp CONFIG REQUIRED) + find_package( + Python3 + COMPONENTS Interpreter Development NumPy From 906ec04bf9f38bc2764671be16e9bac536f6c9b6 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 16 Jan 2025 15:58:44 +0100 Subject: [PATCH 13/37] add EC for RDKit (adapted from PR #21864) --- .../r/RDKit/RDKit-2024.03.5-foss-2024a.eb | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb new file mode 100644 index 000000000000..54f3387879e3 --- /dev/null +++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb @@ -0,0 +1,94 @@ +easyblock = 'CMakeMake' + +name = 'RDKit' +version = '2024.03.5' + +homepage = 'https://www.rdkit.org' +description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python." + +toolchain = {'name': 'foss', 'version': '2024a'} + +source_urls = ['https://github.com/rdkit/rdkit/archive/'] +sources = ['Release_%s.tar.gz' % version.replace('.', '_')] +checksums = ['b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'] + +builddependencies = [ + ('CMake', '3.29.3'), + ('Eigen', '3.4.0'), + ('pkgconf', '2.2.0'), +] +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('SQLite', '3.45.3'), + ('matplotlib', '3.9.2'), + ('Pillow', '11.0.0'), + ('Boost.Python', '1.85.0'), + ('Boost.Python-NumPy', '1.85.0'), + ('cairo', '1.18.0'), + ('Catch2', '3.8.0'), +] + +separate_build_dir = True + +configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_INTREE=OFF " +configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON " +configopts += "-DBOOST_ROOT=$EBROOTBOOST" + +_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_') + +# ingnore failing test pythonSourceTests - from . import rdBase failing +prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir +# ignore failing testUFFAngleConstraints +# https://github.com/rdkit/rdkit/discussions/7588 +prebuildopts += "sed -i 's/def testUFFAngleConstraints(self):/def ignore_testUFFAngleConstraints(self):/' " +prebuildopts += "%s/Code/ForceField/Wrap/testConstraints.py && " % _src_dir + +# fails on zen4 - investigate +prebuildopts += "sed -i '/distGeomHelpersCatch/{N;N;d}' %s/Code/GraphMol/DistGeomHelpers/CMakeLists.txt && " % _src_dir +prebuildopts += "sed -i '/pyDistGeomHelpers/d' %s/Code/GraphMol/DistGeomHelpers/Wrap/CMakeLists.txt && " % _src_dir + +# merge source directory into build directory in order to run the tests +buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && ' +buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && ' + +# Specify path for libraries so that they are found during the tests when the module is built with --rpath flag. +buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && ' + +# 'ctest' allows to pass additional arguments opposed to 'make test' +buildopts += 'ctest --output-on-failure' + + +# generate minimal dist-info: +_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info' +postinstallcmds = [ + 'mkdir %s' % _distinfodir, + 'touch %s/METADATA' % _distinfodir, + 'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir, + 'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir, +] + +local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs', + 'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers', + 'FilterCatalog', 'Fingerprints', 'FMCS', 'ForceFieldHelpers', 'ForceField', 'FragCatalog', 'GraphMol', + 'hc', 'InfoTheory', 'maeparser', 'MMPA', 'MolAlign', 'MolCatalog', 'MolChemicalFeatures', 'MolDraw2D', + 'MolHash', 'MolInterchange', 'MolStandardize', 'MolTransforms', 'Optimizer', 'PartialCharges', 'RDBoost', + 'RDGeneral', 'RDGeometryLib', 'RDStreams', 'ReducedGraphs', 'RGroupDecomposition', 'RingDecomposerLib', + 'ScaffoldNetwork', 'ShapeHelpers', 'SimDivPickers', 'SLNParse', 'SmilesParse', 'Subgraphs', + 'SubstructLibrary', 'SubstructMatch', 'Trajectory'] + +sanity_check_paths = { + 'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs], + 'dirs': [ + 'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit', + 'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info' + ], +} + +sanity_check_commands = [ + "python -c 'import rdkit.rdBase'", +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'chem' From c5830cde50365440d4889bac2a7394063efd09a9 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 16 Jan 2025 16:21:50 +0100 Subject: [PATCH 14/37] Delete easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb --- .../r/RDKit/RDKit-2024.03.5-foss-2024a.eb | 94 ------------------- 1 file changed, 94 deletions(-) delete mode 100644 easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb deleted file mode 100644 index 54f3387879e3..000000000000 --- a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb +++ /dev/null @@ -1,94 +0,0 @@ -easyblock = 'CMakeMake' - -name = 'RDKit' -version = '2024.03.5' - -homepage = 'https://www.rdkit.org' -description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python." - -toolchain = {'name': 'foss', 'version': '2024a'} - -source_urls = ['https://github.com/rdkit/rdkit/archive/'] -sources = ['Release_%s.tar.gz' % version.replace('.', '_')] -checksums = ['b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'] - -builddependencies = [ - ('CMake', '3.29.3'), - ('Eigen', '3.4.0'), - ('pkgconf', '2.2.0'), -] -dependencies = [ - ('Python', '3.12.3'), - ('SciPy-bundle', '2024.05'), - ('SQLite', '3.45.3'), - ('matplotlib', '3.9.2'), - ('Pillow', '11.0.0'), - ('Boost.Python', '1.85.0'), - ('Boost.Python-NumPy', '1.85.0'), - ('cairo', '1.18.0'), - ('Catch2', '3.8.0'), -] - -separate_build_dir = True - -configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_INTREE=OFF " -configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON " -configopts += "-DBOOST_ROOT=$EBROOTBOOST" - -_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_') - -# ingnore failing test pythonSourceTests - from . import rdBase failing -prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir -# ignore failing testUFFAngleConstraints -# https://github.com/rdkit/rdkit/discussions/7588 -prebuildopts += "sed -i 's/def testUFFAngleConstraints(self):/def ignore_testUFFAngleConstraints(self):/' " -prebuildopts += "%s/Code/ForceField/Wrap/testConstraints.py && " % _src_dir - -# fails on zen4 - investigate -prebuildopts += "sed -i '/distGeomHelpersCatch/{N;N;d}' %s/Code/GraphMol/DistGeomHelpers/CMakeLists.txt && " % _src_dir -prebuildopts += "sed -i '/pyDistGeomHelpers/d' %s/Code/GraphMol/DistGeomHelpers/Wrap/CMakeLists.txt && " % _src_dir - -# merge source directory into build directory in order to run the tests -buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && ' -buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && ' - -# Specify path for libraries so that they are found during the tests when the module is built with --rpath flag. -buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && ' - -# 'ctest' allows to pass additional arguments opposed to 'make test' -buildopts += 'ctest --output-on-failure' - - -# generate minimal dist-info: -_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info' -postinstallcmds = [ - 'mkdir %s' % _distinfodir, - 'touch %s/METADATA' % _distinfodir, - 'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir, - 'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir, -] - -local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs', - 'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers', - 'FilterCatalog', 'Fingerprints', 'FMCS', 'ForceFieldHelpers', 'ForceField', 'FragCatalog', 'GraphMol', - 'hc', 'InfoTheory', 'maeparser', 'MMPA', 'MolAlign', 'MolCatalog', 'MolChemicalFeatures', 'MolDraw2D', - 'MolHash', 'MolInterchange', 'MolStandardize', 'MolTransforms', 'Optimizer', 'PartialCharges', 'RDBoost', - 'RDGeneral', 'RDGeometryLib', 'RDStreams', 'ReducedGraphs', 'RGroupDecomposition', 'RingDecomposerLib', - 'ScaffoldNetwork', 'ShapeHelpers', 'SimDivPickers', 'SLNParse', 'SmilesParse', 'Subgraphs', - 'SubstructLibrary', 'SubstructMatch', 'Trajectory'] - -sanity_check_paths = { - 'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs], - 'dirs': [ - 'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit', - 'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info' - ], -} - -sanity_check_commands = [ - "python -c 'import rdkit.rdBase'", -] - -modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} - -moduleclass = 'chem' From 81571b3a981514e6e7b1891b83db89f278dc9cf1 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 16 Jan 2025 17:33:30 +0100 Subject: [PATCH 15/37] Delete easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb --- ...AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb | 80 ------------------- 1 file changed, 80 deletions(-) delete mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb deleted file mode 100644 index 3a1534e9924e..000000000000 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0-foss-2024a-CUDA-12.6.0.eb +++ /dev/null @@ -1,80 +0,0 @@ -# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 -# -# DRAFT! -easyblock = 'PythonBundle' - -name = 'AlphaFold3' -version = '3.0.0' -versionsuffix = '-CUDA-%(cudaver)s' -homepage = 'https://deepmind.google/technologies/alphafold' -description = """This package provides an implementation of the inference pipeline of AlphaFold -3. See below for how to access the model parameters. You may only use AlphaFold -3 model parameters if received directly from Google. Use is subject to these -terms of use: -https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" - -toolchain = {'name': 'foss', 'version': '2024a'} - -github_account = 'google-deepmind' -use_pip = True - -builddependencies = [ - ('scikit-build', '0.17.6'), - ('poetry', '1.8.3'), - ('Python-bundle-PyPI', '2024.06'), - ('scikit-build-core', '0.10.6'), -] - -dependencies = [ - ('Python', '3.12.3'), - ('CUDA', '12.6.0', '', SYSTEM), - ('tqdm', '4.67.0'), - ('jax', '0.4.34', versionsuffix), - ('dm-tree', '0.1.8'), - ('dm-haiku', '0.0.13', versionsuffix), - ('RDKit', '2024.03.5'), - ('jax-triton', '0.2.0', versionsuffix), - ('jaxtyping', '0.2.36', versionsuffix), - # TODO -] - -exts_list = [ - ('zstandard', '0.23.0', { - 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], - }), - ('chex', '0.1.87', { - 'checksums': ['0096d89cc8d898bb521ef4bfbf5c24549022b0e5b301f529ab57238896fe6c5d'], - }), - (name, version, { - 'patches': ['%(name)s-%(version)s_relax_requirements.patch'], - 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], - 'sources': ['v%(version)s.tar.gz'], - 'checksums': [ - {'v3.0.0.tar.gz': 'f4fde43daf4cdf25e4da712f440b8aa8bd8798e2be936a254a562f6cb6eb32df'}, - {'AlphaFold3-3.0.0_relax_requirements.patch': - 'ea2c11638dfc60e51753301412a1867d17b4f772bdfe6a2c834f8bfa8310646d'}, - ], - }), -] - -sanity_pip_check = True - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib'], -} - -# sanity_check_cmds = [] # TODO - -modextravars = { - # acc. to: https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags - 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false', - # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: - 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', - # Unified memory: - 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', - 'TF_FORCE_UNIFIED_MEMORY', 'true', - 'XLA_CLIENT_MEM_FRACTION=3.2', -} - -moduleclass = 'bio' From 94bfb5ec2ea13ab047afea6561a41fe09873c732 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 17 Jan 2025 16:48:17 +0100 Subject: [PATCH 16/37] Delete easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch --- .../AlphaFold3-3.0.0_relax_requirements.patch | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch deleted file mode 100644 index fb0a2cd28b23..000000000000 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0_relax_requirements.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -ru alphafold3-3.0.0/pyproject.toml alphafold3-3.0.0_relax_requirements/pyproject.toml ---- alphafold3-3.0.0/pyproject.toml 2024-11-11 11:42:47.000000000 +0100 -+++ alphafold3-3.0.0_relax_requirements/pyproject.toml 2024-12-19 17:09:46.784161491 +0100 -@@ -19,12 +19,12 @@ - "chex", - "dm-haiku==0.0.13", - "dm-tree", -- "jax==0.4.34", -- "jax[cuda12]==0.4.34", -+ "jax>=0.4.34", -+ #"jax[cuda12]==0.4.34", - "jax-triton==0.2.0", - "jaxtyping", - "numpy", -- "rdkit==2024.3.5", -+ "rdkit", - "triton==3.1.0", - "tqdm", - "zstandard", From 9b6e928ef8a63f93480e4e9790967982379ae862 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:47:32 +0100 Subject: [PATCH 17/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb index c02e18d0cc0c..3686bd0e8118 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb @@ -35,7 +35,7 @@ builddependencies = [ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), - ('tqdm', '4.67.0'), + ('tqdm', '4.66.5'), ('jax', '0.4.34', versionsuffix), ('dm-tree', '0.1.8'), ('dm-haiku', '0.0.13', versionsuffix), From 163f38e595d5d09b5717ef4ff5f8329228c4e510 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 27 Feb 2025 13:04:53 +0100 Subject: [PATCH 18/37] update to 792e61e0 --- ...3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..1f8ba328e847 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,124 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2025/02 +# +# DRAFT! +easyblock = 'PythonBundle' + +name = 'AlphaFold3' +# this commit includes fix for https://github.com/google-deepmind/alphafold3/issues/33# and others...: +_commit = '792e61e099ae011ab9d8f55768adbb95e08343b9' +_commit_date = '20250220' +_version = '3.0.0' +version = '%s.%s' % (_version, _commit_date) +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://deepmind.google/technologies/alphafold' +description = """This package provides an implementation of the inference pipeline of AlphaFold +3. See below for how to access the model parameters. You may only use AlphaFold +3 model parameters if received directly from Google. Use is subject to these +terms of use: +https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +github_account = 'google-deepmind' +use_pip = True + +builddependencies = [ + ('scikit-build', '0.17.6'), + ('poetry', '1.8.3'), + ('Python-bundle-PyPI', '2024.06'), + ('scikit-build-core', '0.10.6'), + ('pybind11', '2.13.6'), + ('pybind11_abseil', '202402.0'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('tqdm', '4.66.5'), + ('jax', '0.4.34', versionsuffix), + ('dm-tree', '0.1.8'), + ('dm-haiku', '0.0.13', versionsuffix), + ('RDKit', '2024.09.5'), + ('jax-triton', '0.2.0', versionsuffix), + ('jaxtyping', '0.2.36', versionsuffix), + ('dssp', '4.4.10'), + ('Abseil', '20240722.0'), + ('HMMER', '3.4') +] +exts_list = [ + ('zstandard', '0.23.0', { + 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], + }), + ('typeguard', '2.13.3', { + 'checksums': ['00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4'], + }), + (name, version, { + 'patches': [ + '%(name)s-3.0.0.20250109_relax_requirements.patch', + '%(name)s-3.0.0_disable_fetch.patch', + '%(name)s-3.0.0.20250109_data_path.patch', + ], + 'postinstallcmds': [ + 'cp run_alphafold.py %(installdir)s/bin', + 'chmod +x %(installdir)s/bin/run_alphafold.py', + '%(installdir)s/bin/build_data', + ], + 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], + 'sources': [{'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz'}], + 'checksums': [ + {'AlphaFold3-3.0.0.20250220-20250109.ea04034.tar.gz': + '6bcf9392be402cba9a506fbfbeb8fd4b990b0ea7c40bd77d0424d83a71db3658'}, + {'AlphaFold3-3.0.0.20250109_relax_requirements.patch': + '4c96c6d35542953d7dbae5cc43e0273c653430c472ffd4f5444d9096d83f00a2'}, + {'AlphaFold3-3.0.0_disable_fetch.patch': + 'e26da6d3a244ebf4185b7c8833326a5011a8af6f449eb6535c4147416336dd27'}, + {'AlphaFold3-3.0.0.20250109_data_path.patch': + '00a71f24f430429bb8d432ee67253d29858c30fc7925e174fcb7e862285c8528'}, + ], + }), +] + +fix_python_shebang_for = ['bin/run_alphafold.py'] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/run_alphafold.py'], + 'dirs': ['lib'], +} +sanity_check_commands = [ + ('run_alphafold.py --help|grep "AlphaFold 3 structure prediction script"') +] + +modextravars = { + 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % _version, # adapt + # acc. to: + # https://github.com/google-deepmind/alphafold3/ + # blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags + 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false ', + # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: + # 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', + # Unified memory: + 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', + 'TF_FORCE_UNIFIED_MEMORY': 'true', + 'XLA_CLIENT_MEM_FRACTION': '3.2', +} + +modluafooter = """ +setenv("AF3_MODEL_DIR", os.getenv("HOME") .. "/.alphfold3/models"); +eb_tmpdir = os.getenv("TMPDIR") +if not eb_tmpdir then eb_tmpdir='/tmp' end +setenv("TRITON_HOME", eb_tmpdir .. "/" .. os.getenv("USER") .. "/triton_home") +""" + +modtclfooter = """ +setenv AF3_MODEL_DIR $::env(HOME)/.alphafold3/models +if { [info exists ::env(TMPDIR)] } { + setenv AF3_MODEL_DIR $::env(TMPDIR)/$::env(USER)/triton_home +} else { + setenv AF3_MODEL_DIR /tmp/$::env(USER)/triton_home +} +""" + +moduleclass = 'bio' From a16c12a8874a341a5aca272103112a295c1157bd Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:08:18 +0100 Subject: [PATCH 19/37] Delete easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb --- ...3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb | 126 ------------------ 1 file changed, 126 deletions(-) delete mode 100644 easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb deleted file mode 100644 index 3686bd0e8118..000000000000 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250109-foss-2024a-CUDA-12.6.0.eb +++ /dev/null @@ -1,126 +0,0 @@ -# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 -# -# DRAFT! -easyblock = 'PythonBundle' - -name = 'AlphaFold3' -# this commit includes fix for https://github.com/google-deepmind/alphafold3/issues/33# and others...: -_commit = 'ea040346e10db1759170e723ef263316e64aa768' -_commit_date = '20250109' -_version = '3.0.0' -version = '%s.%s' % (_version, _commit_date) -versionsuffix = '-CUDA-%(cudaver)s' - -homepage = 'https://deepmind.google/technologies/alphafold' -description = """This package provides an implementation of the inference pipeline of AlphaFold -3. See below for how to access the model parameters. You may only use AlphaFold -3 model parameters if received directly from Google. Use is subject to these -terms of use: -https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" - -toolchain = {'name': 'foss', 'version': '2024a'} - -github_account = 'google-deepmind' -use_pip = True - -builddependencies = [ - ('scikit-build', '0.17.6'), - ('poetry', '1.8.3'), - ('Python-bundle-PyPI', '2024.06'), - ('scikit-build-core', '0.10.6'), - ('pybind11', '2.13.6'), - ('pybind11_abseil', '202402.0'), -] - -dependencies = [ - ('Python', '3.12.3'), - ('CUDA', '12.6.0', '', SYSTEM), - ('tqdm', '4.66.5'), - ('jax', '0.4.34', versionsuffix), - ('dm-tree', '0.1.8'), - ('dm-haiku', '0.0.13', versionsuffix), - ('RDKit', '2024.03.5'), - ('jax-triton', '0.2.0', versionsuffix), - ('jaxtyping', '0.2.36', versionsuffix), - ('dssp', '4.4.10'), - ('Abseil', '20240722.0'), - ('HMMER', '3.4') -] -exts_list = [ - ('zstandard', '0.23.0', { - 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], - }), - ('typeguard', '2.13.3', { - 'checksums': ['00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4'], - }), - (name, version, { - 'patches': [ - '%(name)s-%(version)s_relax_requirements.patch', - '%(name)s-3.0.0_disable_fetch.patch', - '%(name)s-%(version)s_data_path.patch', - ], - 'postinstallcmds': [ - 'cp run_alphafold.py %(installdir)s/bin', - 'chmod +x %(installdir)s/bin/run_alphafold.py', - '%(installdir)s/bin/build_data', - ], - 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], - 'sources': [{ - 'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', - 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz'}], - 'checksums': [ - {'AlphaFold3-3.0.0.20250109-20250109.ea04034.tar.gz': - '6bcf9392be402cba9a506fbfbeb8fd4b990b0ea7c40bd77d0424d83a71db3658'}, - {'AlphaFold3-3.0.0.20250109_relax_requirements.patch': - '4c96c6d35542953d7dbae5cc43e0273c653430c472ffd4f5444d9096d83f00a2'}, - {'AlphaFold3-3.0.0_disable_fetch.patch': - 'e26da6d3a244ebf4185b7c8833326a5011a8af6f449eb6535c4147416336dd27'}, - {'AlphaFold3-3.0.0.20250109_data_path.patch': - '00a71f24f430429bb8d432ee67253d29858c30fc7925e174fcb7e862285c8528'}, - ], - }), -] - -fix_python_shebang_for = ['bin/run_alphafold.py'] - -sanity_pip_check = True - -sanity_check_paths = { - 'files': ['bin/run_alphafold.py'], - 'dirs': ['lib'], -} -sanity_check_commands = [ - ('run_alphafold.py --help|grep "AlphaFold 3 structure prediction script"') -] - -modextravars = { - 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % _version, # adapt - # acc. to: - # https://github.com/google-deepmind/alphafold3/ - # blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags - 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false ', - # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: - # 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', - # Unified memory: - 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', - 'TF_FORCE_UNIFIED_MEMORY': 'true', - 'XLA_CLIENT_MEM_FRACTION': '3.2', -} - -modluafooter = """ -setenv("AF3_MODEL_DIR", os.getenv("HOME") .. "/.alphfold3/models"); -eb_tmpdir = os.getenv("TMPDIR") -if not eb_tmpdir then eb_tmpdir='/tmp' end -setenv("TRITON_HOME", eb_tmpdir .. "/" .. os.getenv("USER") .. "/triton_home") -""" - -modtclfooter = """ -setenv AF3_MODEL_DIR $::env(HOME)/.alphafold3/models -if { [info exists ::env(TMPDIR)] } { - setenv AF3_MODEL_DIR $::env(TMPDIR)/$::env(USER)/triton_home -} else { - setenv AF3_MODEL_DIR /tmp/$::env(USER)/triton_home -} -""" - -moduleclass = 'bio' From 8eae300aa72034964b997381b166f78584c69bb8 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 27 Feb 2025 13:40:59 +0100 Subject: [PATCH 20/37] update jaxtyping to v0.2.38 --- ...3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 2 +- ...jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 1f8ba328e847..4be9974e093b 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -41,7 +41,7 @@ dependencies = [ ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.09.5'), ('jax-triton', '0.2.0', versionsuffix), - ('jaxtyping', '0.2.36', versionsuffix), + ('jaxtyping', '0.2.38', versionsuffix), ('dssp', '4.4.10'), ('Abseil', '20240722.0'), ('HMMER', '3.4') diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..cb57d7449dd2 --- /dev/null +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,43 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 + +easyblock = 'PythonBundle' + +name = 'jaxtyping' +version = '0.2.38' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/patrick-kidger/jaxtyping' +description = """ Type annotations and runtime type-checking for: +1. shape and dtype of JAX arrays; + (Now also supports PyTorch, NumPy, and TensorFlow!) +2. PyTrees. """ +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('poetry', '1.8.3') +] +dependencies = [ + ('Python', '3.12.3'), + ('CUDA', '12.6.0', '', SYSTEM), + ('jax', '0.4.34', versionsuffix), +] + +use_pip = True + +exts_list = [ + ('wadler_lindig', '0.1.3', { + 'checksums': ['476fb7015135f714cef8f8eac7c44b164c8b993345e651a9b6f25b7b112440c9'], + }), + (name, version, { + 'checksums': ['84d509341437189e82d7dbb59a2970435724851ca79fd8550e886cd37c048333'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'ai' From 66405668f2eff55d5ed0cfc2ce598996a78c6fb3 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 27 Feb 2025 13:58:03 +0100 Subject: [PATCH 21/37] update dm-tree to v0.1.9 --- ...3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 2 +- .../d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb | 38 +++++ .../d/dm-tree/dm-tree-0.1.9_pybind11.patch | 138 ++++++++++++++++++ 3 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb create mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9_pybind11.patch diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 4be9974e093b..83e4095a534f 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -37,7 +37,7 @@ dependencies = [ ('CUDA', '12.6.0', '', SYSTEM), ('tqdm', '4.66.5'), ('jax', '0.4.34', versionsuffix), - ('dm-tree', '0.1.8'), + ('dm-tree', '0.1.9'), ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.09.5'), ('jax-triton', '0.2.0', versionsuffix), diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb new file mode 100644 index 000000000000..3be4da49294a --- /dev/null +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonPackage' + +name = 'dm-tree' +version = '0.1.9' + +homepage = 'https://github.com/deepmind/tree' +description = """dm-tree provides tree, a library for working with nested data structures. In a way, +tree generalizes the builtin map function which only supports flat sequences, and +allows to apply a function to each "leaf" preserving the overall structure.""" + +toolchain = {'name': 'gfbf', 'version': '2024a'} + +sources = ['dm_tree-%(version)s.tar.gz'] +patches = ['dm-tree-0.1.9_pybind11.patch'] +checksums = [ + {'dm_tree-0.1.9.tar.gz': 'a4c7db3d3935a5a2d5e4b383fc26c6b0cd6f78c6d4605d3e7b518800ecd5342b'}, + {'dm-tree-0.1.9_pybind11.patch': '39ae1e40e6a027a6c6e085b20d33fe8de0e8103963c2ae0da665597ed9c6b41b'}, +] + +builddependencies = [ + ('pybind11', '2.12.0'), +] +dependencies = [ + ('Python', '3.12.3'), + ('absl-py', '2.1.0'), + ('Abseil', '20240722.0'), + ('SciPy-bundle', '2024.05'), + ('wrapt', '1.16.0'), +] + +download_dep_fail = True + +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'tree'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9_pybind11.patch b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9_pybind11.patch new file mode 100644 index 000000000000..abdc85f80f6d --- /dev/null +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9_pybind11.patch @@ -0,0 +1,138 @@ +# Taken from: https://data.gpo.zugaina.org/benzene-overlay/dev-python/dm-tree/files/dm-tree-0.1.9-Simplify-setup.py-by-using-pybind11.setup_helpers.Py.patch +--- a/setup.py 2025-01-31 01:23:48.000000000 +0800 ++++ b/setup.py 2025-01-31 10:37:41.641290403 +0800 +@@ -15,14 +15,9 @@ + """Setup for pip package.""" + + import os +-import platform +-import shutil +-import subprocess +-import sys +-import sysconfig + +-import setuptools +-from setuptools.command import build_ext ++from setuptools import find_packages, setup ++from pybind11.setup_helpers import Pybind11Extension, build_ext + + here = os.path.dirname(os.path.abspath(__file__)) + +@@ -39,84 +34,7 @@ + exec(version_line, ns) # pylint: disable=exec-used + return ns['__version__'] + +- +-class CMakeExtension(setuptools.Extension): +- """An extension with no sources. +- +- We do not want distutils to handle any of the compilation (instead we rely +- on CMake), so we always pass an empty list to the constructor. +- """ +- +- def __init__(self, name, source_dir=''): +- super().__init__(name, sources=[]) +- self.source_dir = os.path.abspath(source_dir) +- +- +-class BuildCMakeExtension(build_ext.build_ext): +- """Our custom build_ext command. +- +- Uses CMake to build extensions instead of a bare compiler (e.g. gcc, clang). +- """ +- +- def run(self): +- self._check_build_environment() +- for ext in self.extensions: +- self.build_extension(ext) +- +- def _check_build_environment(self): +- """Check for required build tools: CMake, C++ compiler, and python dev.""" +- try: +- subprocess.check_call(['cmake', '--version']) +- except OSError as e: +- ext_names = ', '.join(e.name for e in self.extensions) +- raise RuntimeError( +- f'CMake must be installed to build the following extensions: {ext_names}' +- ) from e +- print('Found CMake') +- +- def build_extension(self, ext): +- extension_dir = os.path.abspath( +- os.path.dirname(self.get_ext_fullpath(ext.name))) +- build_cfg = 'Debug' if self.debug else 'Release' +- cmake_args = [ +- f'-DPython3_ROOT_DIR={sys.prefix}', +- f'-DPython3_EXECUTABLE={sys.executable}', +- f'-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={extension_dir}', +- f'-DCMAKE_BUILD_TYPE={build_cfg}' +- ] +- if platform.system() != 'Windows': +- cmake_args.extend([ +- f'-DPython3_LIBRARY={sysconfig.get_paths()["stdlib"]}', +- f'-DPython3_INCLUDE_DIR={sysconfig.get_paths()["include"]}', +- ]) +- if platform.system() == 'Darwin' and os.environ.get('ARCHFLAGS'): +- osx_archs = [] +- if '-arch x86_64' in os.environ['ARCHFLAGS']: +- osx_archs.append('x86_64') +- if '-arch arm64' in os.environ['ARCHFLAGS']: +- osx_archs.append('arm64') +- cmake_args.append(f'-DCMAKE_OSX_ARCHITECTURES={";".join(osx_archs)}') +- os.makedirs(self.build_temp, exist_ok=True) +- subprocess.check_call( +- ['cmake', '-S', ext.source_dir, '-B', self.build_temp] + cmake_args) +- num_jobs = () +- if self.parallel: +- num_jobs = (f'-j{self.parallel}',) +- subprocess.check_call([ +- 'cmake', '--build', self.build_temp, *num_jobs, '--config', build_cfg +- ]) +- +- # Force output to /. Amends CMake multigenerator output paths +- # on Windows and avoids Debug/ and Release/ subdirs, which is CMake default. +- tree_dir = os.path.join(extension_dir, 'tree') # pylint:disable=unreachable +- for cfg in ('Release', 'Debug'): +- cfg_dir = os.path.join(extension_dir, cfg) +- if os.path.isdir(cfg_dir): +- for f in os.listdir(cfg_dir): +- shutil.move(os.path.join(cfg_dir, f), tree_dir) +- +- +-setuptools.setup( ++setup( + name='dm-tree', + version=_get_tree_version(), + url='https://github.com/deepmind/tree', +@@ -126,7 +44,7 @@ + long_description=open(os.path.join(here, 'README.md')).read(), + long_description_content_type='text/markdown', + # Contained modules and scripts. +- packages=setuptools.find_packages(), ++ packages=find_packages(), + python_requires='>=3.10', + install_requires=[ + 'absl-py>=0.6.1', +@@ -139,8 +57,20 @@ + 'wrapt>=1.11.2', + ], + test_suite='tree', +- cmdclass=dict(build_ext=BuildCMakeExtension), +- ext_modules=[CMakeExtension('_tree', source_dir='tree')], ++ cmdclass={"build_ext": build_ext}, ++ ext_modules=[ ++ Pybind11Extension( ++ 'tree._tree', ++ sources=['tree/tree.cc'], ++ libraries=[ ++ 'absl_int128', ++ 'absl_raw_hash_set', ++ 'absl_raw_logging_internal', ++ 'absl_strings', ++ 'absl_throw_delegate', ++ ] ++ ) ++ ], + zip_safe=False, + # PyPI package information. + classifiers=[ From 29beb523bd5ab8e1a245e8656225e43134c58923 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:05:00 +0100 Subject: [PATCH 22/37] Delete easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch --- .../d/dm-tree/dm-tree-0.1.8_pybind11.patch | 140 ------------------ 1 file changed, 140 deletions(-) delete mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch deleted file mode 100644 index d259db0f551b..000000000000 --- a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8_pybind11.patch +++ /dev/null @@ -1,140 +0,0 @@ -# Taken from: https://data.gpo.zugaina.org/benzene-overlay/dev-python/dm-tree/files/dm-tree-0.1.8-Simplify-setup.py-by-using-pybind11.setup_helpers.Py.patch -From: Michael Fladischer -Date: Mon, 31 Jul 2023 21:13:42 +0000 -Subject: Simplify setup.py by using pybind11.setup_helpers.Pybind11Extension. - ---- - setup.py | 103 ++++++++++++--------------------------------------------------- - 1 file changed, 19 insertions(+), 84 deletions(-) - -diff --git a/setup.py b/setup.py -index d1862a1..8381bff 100644 ---- a/setup.py -+++ b/setup.py -@@ -15,14 +15,10 @@ - """Setup for pip package.""" - - import os --import platform --import shutil --import subprocess --import sys --import sysconfig - --import setuptools --from setuptools.command import build_ext -+from setuptools import find_packages, setup -+from pybind11.setup_helpers import Pybind11Extension, build_ext -+ - - here = os.path.dirname(os.path.abspath(__file__)) - -@@ -48,80 +44,7 @@ def _parse_requirements(path): - ] - - --class CMakeExtension(setuptools.Extension): -- """An extension with no sources. -- -- We do not want distutils to handle any of the compilation (instead we rely -- on CMake), so we always pass an empty list to the constructor. -- """ -- -- def __init__(self, name, source_dir=''): -- super().__init__(name, sources=[]) -- self.source_dir = os.path.abspath(source_dir) -- -- --class BuildCMakeExtension(build_ext.build_ext): -- """Our custom build_ext command. -- -- Uses CMake to build extensions instead of a bare compiler (e.g. gcc, clang). -- """ -- -- def run(self): -- self._check_build_environment() -- for ext in self.extensions: -- self.build_extension(ext) -- -- def _check_build_environment(self): -- """Check for required build tools: CMake, C++ compiler, and python dev.""" -- try: -- subprocess.check_call(['cmake', '--version']) -- except OSError as e: -- ext_names = ', '.join(e.name for e in self.extensions) -- raise RuntimeError( -- f'CMake must be installed to build the following extensions: {ext_names}' -- ) from e -- print('Found CMake') -- -- def build_extension(self, ext): -- extension_dir = os.path.abspath( -- os.path.dirname(self.get_ext_fullpath(ext.name))) -- build_cfg = 'Debug' if self.debug else 'Release' -- cmake_args = [ -- f'-DPython3_ROOT_DIR={sys.prefix}', -- f'-DPython3_EXECUTABLE={sys.executable}', -- f'-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={extension_dir}', -- f'-DCMAKE_BUILD_TYPE={build_cfg}' -- ] -- if platform.system() != 'Windows': -- cmake_args.extend([ -- f'-DPython3_LIBRARY={sysconfig.get_paths()["stdlib"]}', -- f'-DPython3_INCLUDE_DIR={sysconfig.get_paths()["include"]}', -- ]) -- if platform.system() == 'Darwin' and os.environ.get('ARCHFLAGS'): -- osx_archs = [] -- if '-arch x86_64' in os.environ['ARCHFLAGS']: -- osx_archs.append('x86_64') -- if '-arch arm64' in os.environ['ARCHFLAGS']: -- osx_archs.append('arm64') -- cmake_args.append(f'-DCMAKE_OSX_ARCHITECTURES={";".join(osx_archs)}') -- os.makedirs(self.build_temp, exist_ok=True) -- subprocess.check_call( -- ['cmake', ext.source_dir] + cmake_args, cwd=self.build_temp) -- subprocess.check_call( -- ['cmake', '--build', '.', f'-j{os.cpu_count()}', '--config', build_cfg], -- cwd=self.build_temp) -- -- # Force output to /. Amends CMake multigenerator output paths -- # on Windows and avoids Debug/ and Release/ subdirs, which is CMake default. -- tree_dir = os.path.join(extension_dir, 'tree') # pylint:disable=unreachable -- for cfg in ('Release', 'Debug'): -- cfg_dir = os.path.join(extension_dir, cfg) -- if os.path.isdir(cfg_dir): -- for f in os.listdir(cfg_dir): -- shutil.move(os.path.join(cfg_dir, f), tree_dir) -- -- --setuptools.setup( -+setup( - name='dm-tree', - version=_get_tree_version(), - url='https://github.com/deepmind/tree', -@@ -131,11 +54,23 @@ setuptools.setup( - long_description=open(os.path.join(here, 'README.md')).read(), - long_description_content_type='text/markdown', - # Contained modules and scripts. -- packages=setuptools.find_packages(), -+ packages=find_packages(), - tests_require=_parse_requirements('requirements-test.txt'), - test_suite='tree', -- cmdclass=dict(build_ext=BuildCMakeExtension), -- ext_modules=[CMakeExtension('_tree', source_dir='tree')], -+ cmdclass={"build_ext": build_ext}, -+ ext_modules=[ -+ Pybind11Extension( -+ 'tree._tree', -+ sources=['tree/tree.cc'], -+ libraries=[ -+ 'absl_int128', -+ 'absl_raw_hash_set', -+ 'absl_raw_logging_internal', -+ 'absl_strings', -+ 'absl_throw_delegate', -+ ] -+ ) -+ ], - zip_safe=False, - # PyPI package information. - classifiers=[ From b99b269a2ea66e2028656859b62cf2115f0bfb89 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:05:18 +0100 Subject: [PATCH 23/37] Delete easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb --- ...jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb deleted file mode 100644 index 31a63906412a..000000000000 --- a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.36-foss-2024a-CUDA-12.6.0.eb +++ /dev/null @@ -1,40 +0,0 @@ -# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12 - -easyblock = 'PythonBundle' - -name = 'jaxtyping' -version = '0.2.36' -versionsuffix = '-CUDA-%(cudaver)s' - -homepage = 'https://github.com/patrick-kidger/jaxtyping' -description = """ Type annotations and runtime type-checking for: -1. shape and dtype of JAX arrays; - (Now also supports PyTorch, NumPy, and TensorFlow!) -2. PyTrees. """ -toolchain = {'name': 'foss', 'version': '2024a'} - -builddependencies = [ - ('poetry', '1.8.3') -] -dependencies = [ - ('Python', '3.12.3'), - ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.34', versionsuffix), -] - -use_pip = True - -exts_list = [ - (name, version, { - 'checksums': ['781ac44a3cf8982063d7ee48b5008ccfad7b13793bf878eb3058d5319aa08f0f'], - }), -] - -sanity_pip_check = True - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib'], -} - -moduleclass = 'ai' From 2a5f374c58bae754c6d0af2b2f47131a6b417591 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:06:07 +0100 Subject: [PATCH 24/37] Delete easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb --- .../d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb deleted file mode 100644 index 7d7f0a798255..000000000000 --- a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCC-13.3.0.eb +++ /dev/null @@ -1,35 +0,0 @@ -easyblock = 'PythonPackage' - -name = 'dm-tree' -version = '0.1.8' - -homepage = 'https://github.com/deepmind/tree' -description = """dm-tree provides tree, a library for working with nested data structures. In a way, -tree generalizes the builtin map function which only supports flat sequences, and -allows to apply a function to each "leaf" preserving the overall structure.""" - -toolchain = {'name': 'GCC', 'version': '13.3.0'} - -sources = [SOURCELOWER_TAR_GZ] -patches = ['dm-tree-0.1.8_pybind11.patch'] -checksums = [ - {'dm-tree-0.1.8.tar.gz': '0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430'}, - {'dm-tree-0.1.8_pybind11.patch': '1ed433eda86d46333d735dfea9eecf9d007ba0ca8b1bc610c6f02cd478b8d131'}, -] - -builddependencies = [ - ('pybind11', '2.12.0'), -] -dependencies = [ - ('Python', '3.12.3'), - ('Abseil', '20240722.0'), -] - -download_dep_fail = True - -use_pip = True -sanity_pip_check = True - -options = {'modulename': 'tree'} - -moduleclass = 'lib' From 07bb9ca0706d4a327b30612b7c7c285a869a8547 Mon Sep 17 00:00:00 2001 From: thoffman Date: Thu, 27 Feb 2025 14:10:30 +0100 Subject: [PATCH 25/37] fix style --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 83e4095a534f..6961434d3548 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -65,7 +65,10 @@ exts_list = [ '%(installdir)s/bin/build_data', ], 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], - 'sources': [{'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz'}], + 'sources': [{ + 'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', + 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz' + }], 'checksums': [ {'AlphaFold3-3.0.0.20250220-20250109.ea04034.tar.gz': '6bcf9392be402cba9a506fbfbeb8fd4b990b0ea7c40bd77d0424d83a71db3658'}, From e14427f23401cb3479a48cb9cf7b29167025254d Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:53:21 +0100 Subject: [PATCH 26/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 6961434d3548..98c18624e2cd 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -70,8 +70,8 @@ exts_list = [ 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz' }], 'checksums': [ - {'AlphaFold3-3.0.0.20250220-20250109.ea04034.tar.gz': - '6bcf9392be402cba9a506fbfbeb8fd4b990b0ea7c40bd77d0424d83a71db3658'}, + {'AlphaFold3-3.0.1.tar.gz': + 'cfe1ae5f6e5c0d7e64570255d296a440955beaf4a8b9f05aaf142f36478a4503'}, {'AlphaFold3-3.0.0.20250109_relax_requirements.patch': '4c96c6d35542953d7dbae5cc43e0273c653430c472ffd4f5444d9096d83f00a2'}, {'AlphaFold3-3.0.0_disable_fetch.patch': From d152dda01739a0f3f82f79246b2298786e1e7424 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:54:18 +0100 Subject: [PATCH 27/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 98c18624e2cd..5be3641e64be 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -79,6 +79,8 @@ exts_list = [ {'AlphaFold3-3.0.0.20250109_data_path.patch': '00a71f24f430429bb8d432ee67253d29858c30fc7925e174fcb7e862285c8528'}, ], + 'testinstall': True, + 'runtest': 'python run_alphafold_test.py', }), ] From 1b12a516b78b460cab280721fab66883af5af361 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:55:01 +0100 Subject: [PATCH 28/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 5be3641e64be..462e27fa0b51 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -4,11 +4,7 @@ easyblock = 'PythonBundle' name = 'AlphaFold3' -# this commit includes fix for https://github.com/google-deepmind/alphafold3/issues/33# and others...: -_commit = '792e61e099ae011ab9d8f55768adbb95e08343b9' -_commit_date = '20250220' -_version = '3.0.0' -version = '%s.%s' % (_version, _commit_date) +version = '3.0.1' versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://deepmind.google/technologies/alphafold' From 512f3ac9ebf7e06c1ad2b9329bdfb3eb727ba70e Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:55:39 +0100 Subject: [PATCH 29/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index 462e27fa0b51..fc3eafe5133d 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -8,9 +8,9 @@ version = '3.0.1' versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://deepmind.google/technologies/alphafold' -description = """This package provides an implementation of the inference pipeline of AlphaFold -3. See below for how to access the model parameters. You may only use AlphaFold -3 model parameters if received directly from Google. Use is subject to these +description = """This package provides an implementation of the inference pipeline of AlphaFold3. +See below for how to access the model parameters. You may only use AlphaFold3 +model parameters if received directly from Google. Use is subject to these terms of use: https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" From bc57ac4fc3c38c69eb577982239e1aa5e2d6f478 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:56:01 +0100 Subject: [PATCH 30/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb index fc3eafe5133d..18e6c8e748b0 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb @@ -60,11 +60,8 @@ exts_list = [ 'chmod +x %(installdir)s/bin/run_alphafold.py', '%(installdir)s/bin/build_data', ], - 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], - 'sources': [{ - 'download_filename': 'ea040346e10db1759170e723ef263316e64aa768.tar.gz', - 'filename': '%(name)s-%(version)s-20250109.ea04034.tar.gz' - }], + 'source_urls': [GITHUB_SOURCE_LOWER], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}], 'checksums': [ {'AlphaFold3-3.0.1.tar.gz': 'cfe1ae5f6e5c0d7e64570255d296a440955beaf4a8b9f05aaf142f36478a4503'}, From 21627964f84d4d5cdc2a98061e126a474ca8f57f Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:58:51 +0100 Subject: [PATCH 31/37] Rename AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb to AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb --- ...-CUDA-12.6.0.eb => AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/a/AlphaFold3/{AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb => AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb} (100%) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb similarity index 100% rename from easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.0.20250220-foss-2024a-CUDA-12.6.0.eb rename to easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb From 5554075b12577a57f601e123aa2fa3a0c1edfda0 Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 14 Mar 2025 15:41:59 +0100 Subject: [PATCH 32/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb index 18e6c8e748b0..60929c5fc107 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb @@ -104,7 +104,7 @@ modextravars = { } modluafooter = """ -setenv("AF3_MODEL_DIR", os.getenv("HOME") .. "/.alphfold3/models"); +setenv("AF3_MODEL_DIR", os.getenv("HOME") .. "/.alphafold3/models"); eb_tmpdir = os.getenv("TMPDIR") if not eb_tmpdir then eb_tmpdir='/tmp' end setenv("TRITON_HOME", eb_tmpdir .. "/" .. os.getenv("USER") .. "/triton_home") From 1463620ce026f599f867434267f48cb1df2a9e7f Mon Sep 17 00:00:00 2001 From: Thomas Hoffmann <81254262+ThomasHoffmann77@users.noreply.github.com> Date: Fri, 14 Mar 2025 15:42:40 +0100 Subject: [PATCH 33/37] Update easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb Co-authored-by: Viktor Rehnberg <35767167+VRehnberg@users.noreply.github.com> --- .../a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb index 60929c5fc107..dc56b51a3258 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb @@ -60,7 +60,7 @@ exts_list = [ 'chmod +x %(installdir)s/bin/run_alphafold.py', '%(installdir)s/bin/build_data', ], - 'source_urls': [GITHUB_SOURCE_LOWER], + 'source_urls': [GITHUB_LOWER_SOURCE], 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}], 'checksums': [ {'AlphaFold3-3.0.1.tar.gz': From 397f3818b31797db8806ade6dbe35628e1d3c0fe Mon Sep 17 00:00:00 2001 From: thoffman Date: Tue, 20 May 2025 14:26:30 +0200 Subject: [PATCH 34/37] update jax dependency 0.4.34->0.4.35 --- .../a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb | 4 ++-- .../j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb | 2 +- .../j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb index dc56b51a3258..acd9729cdb76 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb @@ -32,7 +32,7 @@ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), ('tqdm', '4.66.5'), - ('jax', '0.4.34', versionsuffix), + ('jax', '0.4.35', versionsuffix), ('dm-tree', '0.1.9'), ('dm-haiku', '0.0.13', versionsuffix), ('RDKit', '2024.09.5'), @@ -90,7 +90,7 @@ sanity_check_commands = [ ] modextravars = { - 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % _version, # adapt + 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % version, # adapt # acc. to: # https://github.com/google-deepmind/alphafold3/ # blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb index 9c2bfdbe03a1..e1dd8fe3d96f 100644 --- a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'foss', 'version': '2024a'} dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.34', versionsuffix), + ('jax', '0.4.35', versionsuffix), ('Triton', '3.1.0', versionsuffix), ] diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb index cb57d7449dd2..f9fdf8475d85 100644 --- a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb @@ -19,7 +19,7 @@ builddependencies = [ dependencies = [ ('Python', '3.12.3'), ('CUDA', '12.6.0', '', SYSTEM), - ('jax', '0.4.34', versionsuffix), + ('jax', '0.4.35', versionsuffix), ] use_pip = True From 0549d14f9a38332a037a01f6431fd1e13835eb99 Mon Sep 17 00:00:00 2001 From: thoffman Date: Tue, 20 May 2025 15:01:32 +0200 Subject: [PATCH 35/37] remove sanity_pip_check and use_pip --- .../a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb | 3 --- easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb | 3 --- .../j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb | 4 ---- .../j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb | 4 ---- 4 files changed, 14 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb index acd9729cdb76..5700fa853f2f 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb @@ -17,7 +17,6 @@ https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md" toolchain = {'name': 'foss', 'version': '2024a'} github_account = 'google-deepmind' -use_pip = True builddependencies = [ ('scikit-build', '0.17.6'), @@ -79,8 +78,6 @@ exts_list = [ fix_python_shebang_for = ['bin/run_alphafold.py'] -sanity_pip_check = True - sanity_check_paths = { 'files': ['bin/run_alphafold.py'], 'dirs': ['lib'], diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb index 3be4da49294a..a71cd04595c3 100644 --- a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb @@ -30,9 +30,6 @@ dependencies = [ download_dep_fail = True -use_pip = True -sanity_pip_check = True - options = {'modulename': 'tree'} moduleclass = 'lib' diff --git a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb index e1dd8fe3d96f..c09a38be6bf6 100644 --- a/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jax-triton/jax-triton-0.2.0-foss-2024a-CUDA-12.6.0.eb @@ -18,16 +18,12 @@ dependencies = [ ('Triton', '3.1.0', versionsuffix), ] -use_pip = True - exts_list = [ ('jax_triton', version, { 'checksums': ['ed564a5ffb9e404557dc8d296e7eb30e501da5a4d7b03408acd0837c1c618c21'], }), ] -sanity_pip_check = True - sanity_check_paths = { 'files': [], 'dirs': ['lib'], diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb index f9fdf8475d85..30dcaece4e35 100644 --- a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb @@ -22,8 +22,6 @@ dependencies = [ ('jax', '0.4.35', versionsuffix), ] -use_pip = True - exts_list = [ ('wadler_lindig', '0.1.3', { 'checksums': ['476fb7015135f714cef8f8eac7c44b164c8b993345e651a9b6f25b7b112440c9'], @@ -33,8 +31,6 @@ exts_list = [ }), ] -sanity_pip_check = True - sanity_check_paths = { 'files': [], 'dirs': ['lib'], From a7cc939d0b00973cb63e1e8f1715b2654b6b84fd Mon Sep 17 00:00:00 2001 From: thoffman Date: Tue, 20 May 2025 15:14:39 +0200 Subject: [PATCH 36/37] whitespace --- .../AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb | 8 ++++---- .../jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb index 5700fa853f2f..5fc6ce20c3a0 100644 --- a/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/a/AlphaFold3/AlphaFold3-3.0.1-foss-2024a-CUDA-12.6.0.eb @@ -10,8 +10,8 @@ versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://deepmind.google/technologies/alphafold' description = """This package provides an implementation of the inference pipeline of AlphaFold3. See below for how to access the model parameters. You may only use AlphaFold3 -model parameters if received directly from Google. Use is subject to these -terms of use: +model parameters if received directly from Google. Use is subject to these +terms of use: https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md""" toolchain = {'name': 'foss', 'version': '2024a'} @@ -88,13 +88,13 @@ sanity_check_commands = [ modextravars = { 'DB_DIR': '/scratch/AlphaFold_DBs/%s/' % version, # adapt - # acc. to: + # acc. to: # https://github.com/google-deepmind/alphafold3/ # blob/main/docs/performance.md#compilation-time-workaround-with-xla-flags 'XLA_FLAGS': '--xla_gpu_enable_triton_gemm=false ', # https://github.com/google-deepmind/alphafold3/blob/main/docs/performance.md#cuda-capability-7x-gpus: # 'XLA_FLAGS': '"--xla_gpu_enable_triton_gemm=false --xla_disable_hlo_passes=custom-kernel-fusion-rewriter"', - # Unified memory: + # Unified memory: 'XLA_PYTHON_CLIENT_PREALLOCATE': 'false', 'TF_FORCE_UNIFIED_MEMORY': 'true', 'XLA_CLIENT_MEM_FRACTION': '3.2', diff --git a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb index 30dcaece4e35..5879b27644a1 100644 --- a/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb +++ b/easybuild/easyconfigs/j/jaxtyping/jaxtyping-0.2.38-foss-2024a-CUDA-12.6.0.eb @@ -7,8 +7,8 @@ version = '0.2.38' versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://github.com/patrick-kidger/jaxtyping' -description = """ Type annotations and runtime type-checking for: -1. shape and dtype of JAX arrays; +description = """Type annotations and runtime type-checking for: +1. shape and dtype of JAX arrays; (Now also supports PyTorch, NumPy, and TensorFlow!) 2. PyTrees. """ toolchain = {'name': 'foss', 'version': '2024a'} From 81ba4a48626e3de148456bb4cc024fcc677ac405 Mon Sep 17 00:00:00 2001 From: thoffman Date: Tue, 20 May 2025 16:04:58 +0200 Subject: [PATCH 37/37] remove download_dep_fail --- easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb index a71cd04595c3..8737dcb334ca 100644 --- a/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb +++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.9-gfbf-2024a.eb @@ -28,8 +28,6 @@ dependencies = [ ('wrapt', '1.16.0'), ] -download_dep_fail = True - options = {'modulename': 'tree'} moduleclass = 'lib'