Skip to content

{bio}[foss/2024a] ColabFold v1.5.5#25471

Merged
smoors merged 4 commits intoeasybuilders:developfrom
lexming:20260301113703_new_pr_ColabFold155
Mar 6, 2026
Merged

{bio}[foss/2024a] ColabFold v1.5.5#25471
smoors merged 4 commits intoeasybuilders:developfrom
lexming:20260301113703_new_pr_ColabFold155

Conversation

@lexming
Copy link
Contributor

@lexming lexming commented Mar 1, 2026

(created using eb --new-pr)

I simplified the instalaltion of CollabFold by replacing the external dependency on a custom version of AlphaFold with an extension on alphafold-colabfold in ColabFold itself. The wheels of alphafold-colabfold just contain python code, so they are trivial to install.

Depends on:

@lexming lexming added the update label Mar 1, 2026
@github-actions github-actions bot added the 2024a issues & PRs related to 2024a common toolchains label Mar 1, 2026
@github-actions
Copy link

github-actions bot commented Mar 1, 2026

Updated software ColabFold-1.5.5-foss-2024a.eb

Diff against ColabFold-1.5.2-foss-2022a.eb

easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a.eb

diff --git a/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a.eb b/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.5-foss-2024a.eb
index 3b79958e01..4e1a59a45b 100644
--- a/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a.eb
+++ b/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.5-foss-2024a.eb
@@ -1,43 +1,93 @@
 easyblock = 'PythonBundle'
 
 name = 'ColabFold'
-version = '1.5.2'
+version = '1.5.5'
 
 homepage = 'https://github.com/sokrypton/ColabFold'
 description = """Making protein folding accessible to all. Predict proteins structures both in
 google colab and on your machine."""
 github_account = 'sokrypton'
 
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
+checksums = [
+    {'ColabFold-1.5.5_bioemu-mods.patch':
+        '89926580a14f298d2b6161ee30e417a6723b97060b8b114b9036987fdf21d3e3'},
+]
+
+builddependencies = [
+    ('poetry', '1.8.3'),
+    ('pytest', '8.3.3'),
+]
 dependencies = [
-    ('Python', '3.10.4'),
-    ('SciPy-bundle', '2022.05'),
-    ('AlphaFold', '2.3.4', '-%(name)s'),
-    ('matplotlib', '3.5.2'),
-    ('tqdm', '4.64.0'),
-    ('py3Dmol', '2.0.1.post1'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('Biopython', '1.84'),
+    ('matplotlib', '3.9.2'),
+    ('py3Dmol', '2.5.0'),
+    ('TensorFlow', '2.18.1'),
+    ('jax', '0.6.2'),
+    ('dm-haiku', '0.0.16'),
+    ('dm-tree', '0.1.9'),
+    ('ml-collections', '1.1.0'),
+    ('tqdm', '4.66.5'),
+    ('OpenMM', '8.3.0'),  # for pdbfixer
 ]
 
+# relax requirements of versions arbitrarily pinned long ago
+# fix name of tensorflow package
+_relax_req = """sed -i '/^python =.*/d;s/ = "[=<^]/ = ">=/g;s/tensorflow-cpu/tensorflow/g' pyproject.toml &&"""
+
+exts_default_options = {
+    'sources': [SOURCE_PY3_WHL],
+}
 exts_list = [
+    ('toolz', '1.1.0', {
+        'checksums': ['15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8'],
+    }),
+    ('chex', '0.1.90', {
+        'checksums': ['fce3de82588f72d4796e545e574a433aa29229cbdcf792555e41bead24b704ae'],
+    }),
+    ('immutabledict', '4.2.2', {
+        'checksums': ['97c31d098a2c850e93a958badeef765e4736ed7942ec73e439facd764a3a7217'],
+    }),
+    ('PDBFixer', '1.12', {
+        'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'],
+        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+        'checksums': ['a5c0b05dfaf2cdcad3b8ffc9ee1e6a955628aade0dda653da04d4a12ba4fe3ec'],
+    }),
+    ('alphafold-colabfold', '2.3.12', {
+        'modulename': 'alphafold',
+        'sources': ['alphafold_colabfold-%(version)s-py3-none-any.whl'],
+        'checksums': ['40301c48582be6f30952680b1c4a576534854efc0f30fbf7c438fd8304db8af4'],
+    }),
     ('colabfold', version, {
         'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
-        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
-        'checksums': ['b3b82e831e241a6ab40f2b0c6d560ac5328c6a0b505a0186c75e397ca1a16477'],
-        # fix requirement on Python 3.10.x revisions and TensorFlow
-        'preinstallopts': r"sed -i 's/^\(python =.*\)<=3.10\"$/\1<3.11\"/;s/flow-cpu/flow/' pyproject.toml &&",
+        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+        'checksums': ['7fb0ad263c24ec00d46f2dff1611989234bc1351d71653dd06006f2c88f83dcb'],
         'use_pip_extras': 'alphafold',
+        'preinstallopts': _relax_req,
+        'testinstall': True,
+        'runtest': 'pytest',
     }),
 ]
 
+postinstallpatches = [
+    # apply minor modifications needed by BioEmu
+    ('ColabFold-1.5.5_bioemu-mods.patch', 'lib/python%(pyshortver)s/site-packages'),
+]
+
 postinstallcmds = [
-    # Copy notebooks to installation directory
+    # copy notebooks to installation directory
     "mkdir %(installdir)s/notebooks",
     "cp AlphaFold2.ipynb ESMFold.ipynb RoseTTAFold.ipynb %(installdir)s/notebooks/",
+    # BioEmu checks for the following file in the installation directory
+    # of ColabFold to accept this installation as usable
+    "touch %(installdir)s/.COLABFOLD_PATCHED",
 ]
 
 sanity_check_paths = {
-    'files': ['bin/colabfold_batch', 'bin/colabfold_search', 'bin/colabfold_split_msas'],
+    'files': ['bin/colabfold_batch', 'bin/colabfold_search', 'bin/colabfold_split_msas', 'bin/pdbfixer'],
     'dirs': ['lib/python%(pyshortver)s/site-packages', 'notebooks'],
 }
 
Diff against ColabFold-1.5.2-foss-2022a-CUDA-11.7.0.eb

easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a-CUDA-11.7.0.eb

diff --git a/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.5-foss-2024a.eb
index b77baa0e54..4e1a59a45b 100644
--- a/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.2-foss-2022a-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/c/ColabFold/ColabFold-1.5.5-foss-2024a.eb
@@ -1,45 +1,93 @@
 easyblock = 'PythonBundle'
 
 name = 'ColabFold'
-version = '1.5.2'
-versionsuffix = '-CUDA-%(cudaver)s'
+version = '1.5.5'
 
 homepage = 'https://github.com/sokrypton/ColabFold'
 description = """Making protein folding accessible to all. Predict proteins structures both in
 google colab and on your machine."""
 github_account = 'sokrypton'
 
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
+checksums = [
+    {'ColabFold-1.5.5_bioemu-mods.patch':
+        '89926580a14f298d2b6161ee30e417a6723b97060b8b114b9036987fdf21d3e3'},
+]
+
+builddependencies = [
+    ('poetry', '1.8.3'),
+    ('pytest', '8.3.3'),
+]
 dependencies = [
-    ('CUDA', '11.7.0', '', SYSTEM),
-    ('Python', '3.10.4'),
-    ('SciPy-bundle', '2022.05'),
-    ('AlphaFold', '2.3.4', versionsuffix + '-%(name)s'),
-    ('matplotlib', '3.5.2'),
-    ('tqdm', '4.64.0'),
-    ('py3Dmol', '2.0.1.post1'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('Biopython', '1.84'),
+    ('matplotlib', '3.9.2'),
+    ('py3Dmol', '2.5.0'),
+    ('TensorFlow', '2.18.1'),
+    ('jax', '0.6.2'),
+    ('dm-haiku', '0.0.16'),
+    ('dm-tree', '0.1.9'),
+    ('ml-collections', '1.1.0'),
+    ('tqdm', '4.66.5'),
+    ('OpenMM', '8.3.0'),  # for pdbfixer
 ]
 
+# relax requirements of versions arbitrarily pinned long ago
+# fix name of tensorflow package
+_relax_req = """sed -i '/^python =.*/d;s/ = "[=<^]/ = ">=/g;s/tensorflow-cpu/tensorflow/g' pyproject.toml &&"""
+
+exts_default_options = {
+    'sources': [SOURCE_PY3_WHL],
+}
 exts_list = [
+    ('toolz', '1.1.0', {
+        'checksums': ['15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8'],
+    }),
+    ('chex', '0.1.90', {
+        'checksums': ['fce3de82588f72d4796e545e574a433aa29229cbdcf792555e41bead24b704ae'],
+    }),
+    ('immutabledict', '4.2.2', {
+        'checksums': ['97c31d098a2c850e93a958badeef765e4736ed7942ec73e439facd764a3a7217'],
+    }),
+    ('PDBFixer', '1.12', {
+        'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'],
+        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+        'checksums': ['a5c0b05dfaf2cdcad3b8ffc9ee1e6a955628aade0dda653da04d4a12ba4fe3ec'],
+    }),
+    ('alphafold-colabfold', '2.3.12', {
+        'modulename': 'alphafold',
+        'sources': ['alphafold_colabfold-%(version)s-py3-none-any.whl'],
+        'checksums': ['40301c48582be6f30952680b1c4a576534854efc0f30fbf7c438fd8304db8af4'],
+    }),
     ('colabfold', version, {
         'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
-        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
-        'checksums': ['b3b82e831e241a6ab40f2b0c6d560ac5328c6a0b505a0186c75e397ca1a16477'],
-        # fix requirement on Python 3.10.x revisions and TensorFlow
-        'preinstallopts': r"sed -i 's/^\(python =.*\)<=3.10\"$/\1<3.11\"/;s/flow-cpu/flow/' pyproject.toml &&",
+        'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+        'checksums': ['7fb0ad263c24ec00d46f2dff1611989234bc1351d71653dd06006f2c88f83dcb'],
         'use_pip_extras': 'alphafold',
+        'preinstallopts': _relax_req,
+        'testinstall': True,
+        'runtest': 'pytest',
     }),
 ]
 
+postinstallpatches = [
+    # apply minor modifications needed by BioEmu
+    ('ColabFold-1.5.5_bioemu-mods.patch', 'lib/python%(pyshortver)s/site-packages'),
+]
+
 postinstallcmds = [
-    # Copy notebooks to installation directory
+    # copy notebooks to installation directory
     "mkdir %(installdir)s/notebooks",
     "cp AlphaFold2.ipynb ESMFold.ipynb RoseTTAFold.ipynb %(installdir)s/notebooks/",
+    # BioEmu checks for the following file in the installation directory
+    # of ColabFold to accept this installation as usable
+    "touch %(installdir)s/.COLABFOLD_PATCHED",
 ]
 
 sanity_check_paths = {
-    'files': ['bin/colabfold_batch', 'bin/colabfold_search', 'bin/colabfold_split_msas'],
+    'files': ['bin/colabfold_batch', 'bin/colabfold_search', 'bin/colabfold_split_msas', 'bin/pdbfixer'],
     'dirs': ['lib/python%(pyshortver)s/site-packages', 'notebooks'],
 }
 

@lexming lexming mentioned this pull request Mar 1, 2026
2 tasks
@lexming
Copy link
Contributor Author

lexming commented Mar 3, 2026

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@lexming: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=25471 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_25471 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9925

Test results coming soon (I hope)...

Details

- notification for comment with ID 3990256338 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (total: 13 mins 17 secs) (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.25
See https://gist.github.com/boegelbot/3bbe85f139790bd0cd3652f24b6bf4f4 for a full test report.

@lexming
Copy link
Contributor Author

lexming commented Mar 5, 2026

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@lexming: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=25471 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_25471 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9944

Test results coming soon (I hope)...

Details

- notification for comment with ID 4003819167 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (total: 13 mins 17 secs) (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.25
See https://gist.github.com/boegelbot/f4225cfcd67bbf8614d75963a84a498e for a full test report.

Copy link
Contributor

@smoors smoors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@smoors smoors added this to the next release (5.2.2?) milestone Mar 6, 2026
@smoors
Copy link
Contributor

smoors commented Mar 6, 2026

Going in, thanks @lexming!

@smoors smoors merged commit 6304ad2 into easybuilders:develop Mar 6, 2026
6 checks passed
@lexming lexming deleted the 20260301113703_new_pr_ColabFold155 branch March 6, 2026 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants