From 4689ab89e486d1569705fc167d6e1a178b247348 Mon Sep 17 00:00:00 2001 From: Pavel Tomanek Date: Thu, 6 Mar 2025 11:29:53 +0100 Subject: [PATCH 1/4] adding easyconfigs: Boltz-1-0.4.1-foss-2023a.eb --- .../b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb diff --git a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb new file mode 100644 index 000000000000..524a0b31a0ac --- /dev/null +++ b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb @@ -0,0 +1,81 @@ +easyblock = 'PythonBundle' + +name = 'Boltz-1' +version = '0.4.1' + +homepage = 'https://github.com/jwohlwend/boltz' +description = """ +Boltz-1 is the state-of-the-art open-source model to predict biomolecular structures +containing combinations of proteins, RNA, DNA, and other molecules. +It also supports modified residues, covalent ligands and glycans, as well as +conditioning the prediction on specified interaction pockets or contacts. +""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('SciPy-bundle', '2023.07'), + ('Biopython', '1.83'), + ('PyYAML', '6.0'), + ('PyTorch', '2.1.2'), + ('Hydra', '1.3.2'), + ('PyTorch-Lightning', '2.2.1'), + ('RDKit', '2024.03.3'), + ('dm-tree', '0.1.8'), + ('einops', '0.7.0'), + ('wandb', '0.16.1'), +] + +use_pip = True + +# unpin strict dependencies versions +local_preinstallopts = ( + "sed -i -e " + r"'s/==.*/\",/g' -e " + "'s/torch>=2.2/torch/g' -e " + "'16d' -e " # delete rdkit dep - pip check fail even RDKit is there + "'s/pandas>=2.2.2/pandas/g' " + "pyproject.toml && " +) + +exts_list = [ + ('urllib3', '2.0.7', { + 'checksums': ['c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84'], + }), + ('ihm', '1.7', { + 'checksums': ['f7d3b9a76d9652f7091bbd1c6bea044a1d40b35bcba9b64c8e51a061fc2463de'], + }), + ('frozendict', '2.4.5', { + 'checksums': ['fd7add309789595c044c0155a0bddfa9d20c77f65de1e33a14aa3033b936ef63'], + }), + ('types-requests', '2.32.0.20240914', { + 'modulename': False, + 'checksums': ['2850e178db3919d9bf809e434eef65ba49d0e7e33ac92d588f4a5e295fffd405'], + }), + ('einx', '0.3.0', { + 'checksums': ['17ff87c6a0f68ab358c1da489f00e95f1de106fd12ff17d0fb3e210aaa1e5f8c'], + }), + ('fairscale', '0.4.13', { + 'checksums': ['1b797825c427f5dba92253fd0d8daa574e8bd651a2423497775fab1b30cfb768'], + }), + ('mashumaro', '3.14', { + 'checksums': ['5ef6f2b963892cbe9a4ceb3441dfbea37f8c3412523f25d42e9b3a7186555f1d'], + }), + ('modelcif', '1.2', { + 'checksums': ['517d2a7be67c96fd56dcc3b50cf7bb0b130958c325653d9925f9a5dbfe151d78'], + }), + ('boltz', version, { + 'preinstallopts': local_preinstallopts, + 'runtest': "cd %(start_dir)s && pytest -svv tests/", + 'testinstall': True, + 'checksums': ['7bc4081d578ac7be5972387546f9dd28723ce132264bc13f1d7471f2ce4aa56b'], + }), +] + +sanity_pip_check = True + +sanity_check_commands = ["boltz 2>&1 | grep 'Usage: boltz'"] + +moduleclass = 'bio' From 709c472d1c3dd1a9e8ff05155a3e6ddf20cf930c Mon Sep 17 00:00:00 2001 From: Pavel Tomanek Date: Thu, 6 Mar 2025 12:19:08 +0100 Subject: [PATCH 2/4] add hatchling as builddep --- easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb index 524a0b31a0ac..da532c9f1ab2 100644 --- a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb +++ b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb @@ -13,6 +13,7 @@ conditioning the prediction on specified interaction pockets or contacts. toolchain = {'name': 'foss', 'version': '2023a'} +builddependencies = [('hatchling', '1.18.0')] dependencies = [ ('Python', '3.11.3'), ('Python-bundle-PyPI', '2023.06'), From d9349e6feff79c187349b4208c90cfbcba574cd2 Mon Sep 17 00:00:00 2001 From: Pavel Tomanek Date: Tue, 18 Mar 2025 15:23:46 +0100 Subject: [PATCH 3/4] update runtest to not store caches --- easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb index da532c9f1ab2..9b3390477142 100644 --- a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb +++ b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb @@ -69,7 +69,8 @@ exts_list = [ }), ('boltz', version, { 'preinstallopts': local_preinstallopts, - 'runtest': "cd %(start_dir)s && pytest -svv tests/", + # export HOME to avoid saving large test caches to the user's /home/.boltz + 'runtest': "export HOME=%(builddir)s && cd %(start_dir)s && pytest -svv tests/", 'testinstall': True, 'checksums': ['7bc4081d578ac7be5972387546f9dd28723ce132264bc13f1d7471f2ce4aa56b'], }), From bba5e41fac434a6e3c1469834b9f79c622ac0e9d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 19 Mar 2025 15:44:56 +0100 Subject: [PATCH 4/4] don't explicitly set use_pip and sanity_pip_check in Boltz-1 easyconfig --- easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb index 9b3390477142..3d6b0c2a2316 100644 --- a/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb +++ b/easybuild/easyconfigs/b/Boltz-1/Boltz-1-0.4.1-foss-2023a.eb @@ -29,8 +29,6 @@ dependencies = [ ('wandb', '0.16.1'), ] -use_pip = True - # unpin strict dependencies versions local_preinstallopts = ( "sed -i -e " @@ -76,8 +74,6 @@ exts_list = [ }), ] -sanity_pip_check = True - sanity_check_commands = ["boltz 2>&1 | grep 'Usage: boltz'"] moduleclass = 'bio'