From 51fcfe5e916a158648698f5bc4ac65fec614f6df Mon Sep 17 00:00:00 2001 From: WilleBell Date: Mon, 30 Oct 2023 11:02:58 +0100 Subject: [PATCH 1/3] adding easyconfigs: EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb --- ...3-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb diff --git a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb new file mode 100644 index 000000000000..5bf1e61f5abf --- /dev/null +++ b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb @@ -0,0 +1,91 @@ +easyblock = 'PackedBinary' + +name = 'EMBER3D' +version = '20221213' +local_commit = '45993b9' +local_pytorch_version = '1.12.0' +versionsuffix = '-PyTorch-' + local_pytorch_version + '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/kWeissenow/EMBER3D' +description = """ +This repository contains the code for the EMBER3D protein structure and mutation effect +prediction system. EMBER3D is currently provided as a prototype release for preview purposes. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/kWeissenow/EMBER3D/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['9318dd63e0b222b1271d6ce8d4fa2fa177259a75444dce9804b386b188601326'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyTorch', local_pytorch_version, '-CUDA-%(cudaver)s'), + ('CUDA', '11.7.0', '', SYSTEM), + ('Biopython', '1.79'), + ('Transformers', '4.29.2'), + ('matplotlib', '3.5.2'), + ('e3nn', '0.3.3', '-CUDA-%(cudaver)s'), + ('networkx', '2.8.4'), + ('Pillow', '9.1.1'), + ('PyYAML', '6.0'), + ('PyTorch-Geometric', '2.1.0', versionsuffix), + ('sympy', '1.10.1'), + ('torchaudio', '0.12.0', versionsuffix), + ('torchvision', '0.13.1', '-CUDA-%(cudaver)s'), + ('tqdm', '4.64.0'), + ('DGL', '1.1.1', '-CUDA-%(cudaver)s'), + ('ruamel.yaml', '0.17.21'), + ('SentencePiece', '0.1.97'), +] + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('charset-normalizer', '2.1.0', { + 'checksums': ['575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413'], + }), + ('dglgo', '0.0.1', { + 'source_tmpl': 'dglgo-%(version)s-py3-none-any.whl', + 'checksums': ['5e22a69c117b7e4752892a7685b4b4c1a0ae516a85652be5c9e686732f99cc8b'], + }), + ('importlib_metadata', '4.12.0', { + 'checksums': ['637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670'], + }), + ('pycodestyle', '2.8.0', { + 'checksums': ['eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f'], + }), + ('pydantic', '1.9.1', { + 'checksums': ['1ed987c3ff29fff7fd8c3ea3a3ea877ad310aae2ef9889a119e22d3f2db0691a'], + }), + ('snowballstemmer', '2.2.0', { + 'checksums': ['09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1'], + }), +] + +modextrapaths = {'PYTHONPATH': ['', 'lib/python%(pyshortver)s/site-packages']} + +fix_python_shebang_for = ['predict.py', 'webserver.py', 'predict_sav.py', 'render_mutation_movie.py'] + +postinstallcmds = [ + 'chmod +x %(installdir)s/predict.py', + 'chmod +x %(installdir)s/webserver.py', + 'chmod +x %(installdir)s/predict_sav.py', + 'chmod +x %(installdir)s/render_mutation_movie.py', +] + +sanity_check_paths = { + 'files': ['Ember3D.py', 'predict.py', 'webserver.py', 'predict_sav.py'], + 'dirs': [], +} + +sanity_check_commands = ["predict.py -h", "webserver.py -h", "predict_sav.py -h"] + +moduleclass = 'bio' From 7379fb95af9449d23181df6fc6d15f8d77c54b86 Mon Sep 17 00:00:00 2001 From: WilleBell Date: Wed, 15 Nov 2023 16:36:50 +0100 Subject: [PATCH 2/3] add patch to fix path to default model in predict.py --- ...0221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb | 11 +++++++++-- ...EMBER3D-20221213_fix_path_to_default_model.patch | 13 +++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch diff --git a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb index 5bf1e61f5abf..337c744980eb 100644 --- a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb @@ -16,7 +16,14 @@ toolchain = {'name': 'foss', 'version': '2022a'} source_urls = ['https://github.com/kWeissenow/EMBER3D/archive/'] sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] -checksums = ['9318dd63e0b222b1271d6ce8d4fa2fa177259a75444dce9804b386b188601326'] +patches = [ + '%(name)s-%(version)s_fix_path_to_default_model.patch', +] +checksums = [ + {'EMBER3D-20221213.tar.gz': '9318dd63e0b222b1271d6ce8d4fa2fa177259a75444dce9804b386b188601326'}, + {'EMBER3D-20221213_fix_path_to_default_model.patch': + '976249460ce530de40f4adf46fb1a81b6baea3d7ce91d212686e729a20eb9a16'}, +] dependencies = [ ('Python', '3.10.4'), @@ -31,7 +38,7 @@ dependencies = [ ('Pillow', '9.1.1'), ('PyYAML', '6.0'), ('PyTorch-Geometric', '2.1.0', versionsuffix), - ('sympy', '1.10.1'), + ('sympy', '1.11.1'), ('torchaudio', '0.12.0', versionsuffix), ('torchvision', '0.13.1', '-CUDA-%(cudaver)s'), ('tqdm', '4.64.0'), diff --git a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch new file mode 100644 index 000000000000..de632b1621c8 --- /dev/null +++ b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch @@ -0,0 +1,13 @@ +Fix default model path for it to be found outside the source directory +Author: Cintia Willemyns (Vrije Universiteit Brussel) +--- a/predict.py 2023-11-15 14:41:11.760297000 +0100 ++++ b/predict.py 2023-11-15 15:00:42.079686000 +0100 +@@ -13,7 +13,7 @@ + parser.add_argument('--no-pdb', dest="no_pdb", action="store_true") + parser.add_argument('--no-distance-map', dest="no_distance_map", action="store_true") + parser.add_argument('--save-distance-array', dest="save_distance_array", action="store_true") +-parser.add_argument('-m', '--model', default="model/EMBER3D.model", dest='model_checkpoint', type=str) ++parser.add_argument('-m', '--model', default=os.path.join(os.path.dirname(__file__), 'model' 'EMBER3D.model') , dest='model_checkpoint', type=str) + parser.add_argument('--t5-dir', dest='t5_dir', default="./ProtT5-XL-U50/", type=str) + args = parser.parse_args() + From dd3faebd07fe89dcfc4d6060d1d48168c18ba9ee Mon Sep 17 00:00:00 2001 From: WilleBell Date: Thu, 16 Nov 2023 14:50:24 +0100 Subject: [PATCH 3/3] fix patch typo --- .../EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb | 2 +- .../e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb index 337c744980eb..74c17eb842c7 100644 --- a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb @@ -22,7 +22,7 @@ patches = [ checksums = [ {'EMBER3D-20221213.tar.gz': '9318dd63e0b222b1271d6ce8d4fa2fa177259a75444dce9804b386b188601326'}, {'EMBER3D-20221213_fix_path_to_default_model.patch': - '976249460ce530de40f4adf46fb1a81b6baea3d7ce91d212686e729a20eb9a16'}, + '80ccca75735372c6b0cfbca781dd793a2cbabea2669200ddd907fd0e2897b6e3'}, ] dependencies = [ diff --git a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch index de632b1621c8..64128341d8a8 100644 --- a/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch +++ b/easybuild/easyconfigs/e/EMBER3D/EMBER3D-20221213_fix_path_to_default_model.patch @@ -7,7 +7,7 @@ Author: Cintia Willemyns (Vrije Universiteit Brussel) parser.add_argument('--no-distance-map', dest="no_distance_map", action="store_true") parser.add_argument('--save-distance-array', dest="save_distance_array", action="store_true") -parser.add_argument('-m', '--model', default="model/EMBER3D.model", dest='model_checkpoint', type=str) -+parser.add_argument('-m', '--model', default=os.path.join(os.path.dirname(__file__), 'model' 'EMBER3D.model') , dest='model_checkpoint', type=str) ++parser.add_argument('-m', '--model', default=os.path.join(os.path.dirname(__file__), 'model', 'EMBER3D.model') , dest='model_checkpoint', type=str) parser.add_argument('--t5-dir', dest='t5_dir', default="./ProtT5-XL-U50/", type=str) args = parser.parse_args()