Skip to content

Commit b7ec8ea

Browse files
use data from PR #20019
1 parent 029bf36 commit b7ec8ea

File tree

2 files changed

+14
-110
lines changed

2 files changed

+14
-110
lines changed

easybuild/easyconfigs/r/RFdiffusion/RFdiffusion-1.1.0-foss-2022a-CUDA-11.7.0.eb

Lines changed: 10 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Thomas Hoffmann, EMBL Heidelberg, [email protected], 2023/07
1+
# Thomas Hoffmann, EMBL Heidelberg, [email protected], 2024/03
22
easyblock = 'PythonBundle'
33

44
name = 'RFdiffusion'
@@ -10,97 +10,11 @@ description = """RFdiffusion is an open source method for structure generation,
1010
conditional information (a motif, target etc). It can perform a whole range of
1111
protein design challenges as we have outlined in the RFdiffusion paper
1212
https://www.biorxiv.org/content/10.1101/2022.12.09.519842v1
13-
14-
Model files are available in $RFDIFFUSION_MODELS"""
13+
"""
1514

1615
toolchain = {'name': 'foss', 'version': '2022a'}
17-
toolchainopts = {}
18-
19-
_data_dir = '%(installdir)s' # place schedules and models in installation directory
20-
# _data_dir = '/data/%(name)s/%(version)s/' # or place them in separate location.
21-
22-
# _models contains download_filenames F and the unique download url part X. The unique url for each file is:
23-
# _models_url + / + X + / + F
24-
# X is not a checksum. According checksums are found in _model_checksums.
25-
_models = [
26-
("Base_ckpt.pt", "6f5902ac237024bdd0c176cb93063dc4"),
27-
("Complex_base_ckpt.pt", "e29311f6f1bf1af907f9ef9f44b8328b"),
28-
("Complex_Fold_base_ckpt.pt", "60f09a193fb5e5ccdc4980417708dbab"),
29-
("InpaintSeq_ckpt.pt", "74f51cfb8b440f50d70878e05361d8f0"),
30-
("InpaintSeq_Fold_ckpt.pt", "76d00716416567174cdb7ca96e208296"),
31-
("ActiveSite_ckpt.pt", "5532d2e1f3a4738decd58b19d633b3c3"),
32-
("Base_epoch8_ckpt.pt", "12fc204edeae5b57713c5ad7dcb97d39"),
33-
("Complex_beta_ckpt.pt", "f572d396fae9206628714fb2ce00f72e"),
34-
("RF_structure_prediction_weights.pt", "1befcb9b28e2f778f53d47f18b7597fa"),
35-
]
36-
_models_url = 'http://files.ipd.uw.edu/pub/RFdiffusion'
37-
_schedules_url = 'https://files.ipd.uw.edu/krypton/'
38-
_schedules_fn = 'schedules.zip'
39-
40-
_model_checksums = [
41-
# Base_ckpt.pt
42-
'0fcf7d7c32b4848030aca3a051e6768de194616f96ba6c38186351a33bfc6eca',
43-
# Complex_base_ckpt.pt
44-
'76e4e260aefee3b582bd76b77ab95d2592e64f00c51bf344968ab9239f3250bc',
45-
# Complex_Fold_base_ckpt.pt
46-
'0ac3b4024aea811078cec41482528291d6d7d7084bf8190ec118f54642fb81a1',
47-
# InpaintSeq_ckpt.pt
48-
'3b71b2b954e87d46b75a88ba64e0420fbf27f592604b10b6c3561b8c8ab70ab6',
49-
# InpaintSeq_Fold_ckpt.pt
50-
'51849c9fe64c16a38fe41c75db76abe044e4d3493926f6cfd29a5bde0331b7cc',
51-
# ActiveSite_ckpt.pt
52-
'beca1f672049161df0bc6a2d2523828f19fd9c8a2b449988e246dde42e7ea986',
53-
# Base_epoch8_ckpt.pt
54-
'b8e5d57f0b8a8f8cb30779c106b75210b46a914a4d19fb180676ae647f5ae23d',
55-
# Complex_beta_ckpt.pt
56-
'5a0b1cafc23c60b1aabcec1e49391986ac4fd02cc1b6b4cc41714ca9fe882e9e',
57-
# RF_structure_prediction_weights.pt
58-
'6414e9e60b0b01011e5a182def40b4e6de4e137554c887b2916d43566733ed95',
59-
]
60-
_schedules_checksum = '9fbb47ddb92f1c0cf234bec39ba6ba64d179501fbff53a4d10b4e55afd75e44a'
6116

6217
_pysp = '%(installdir)s/lib/python%(pyshortver)s/site-packages'
63-
_models_dst = '%s/models/' % _data_dir
64-
_schedules_dst = '%s/schedules/' % _data_dir
65-
_get_models = '&&'.join(["cd %s && wget -nc %s/%s/%s" % (_models_dst, _models_url, _lv, _ln) for _ln, _lv in _models])
66-
# wget: do not overwrite
67-
_get_models += '&&'
68-
_get_models += '&&'.join(["[ $(shasum -a 256 %s/%s |awk '{print $1}') == %s ]||{echo wrong checksum for %s;exit 1;}" %
69-
(_models_dst, _ln, _lcs, _ln) for (_ln, _), _lcs in zip(_models, _model_checksums)])
70-
_get_schedules = 'cd %s && wget %s/%s ' % (_schedules_dst, _schedules_url, _schedules_fn)
71-
_get_schedules += "&& [ $(shasum -a 256 %s |awk '{print $1}') == %s ]" % (_schedules_fn, _schedules_checksum)
72-
_get_schedules += '&& unzip -n %s' % _schedules_fn # unzip: do not overwrite
73-
_get_schedules += '&& mv RFdiffusion/schedules/* . && rm RFdiffusion %s -rf' % _schedules_fn
74-
75-
76-
# uncomment for installing models and schedules as components.
77-
# Then comment out _get_schedules and _get_models in postinstallcmds
78-
#
79-
# checksums = [_schedules_checksum] + _model_checksums
80-
# components = [('schedules', version, {
81-
# 'easyblock': 'CmdCp',
82-
# 'source_urls': [_schedules_url],
83-
# 'sources': [{
84-
# 'filename': '%(name)s_v%(version)s.zip',
85-
# 'download_filename': '%(name)s.zip',
86-
# 'extract_cmd': 'unzip -j %s'
87-
# }],
88-
# 'cmds_map': [('.*', '')],
89-
# 'files_to_copy': [(['*.pkl'], _schedules_dst)],
90-
# })]
91-
# components += [
92-
# (_lname, _lver, {
93-
# 'easyblock': 'CmdCp',
94-
# 'source_urls': ['%s/%%(version)s/' % _models_url],
95-
# 'sources': [{
96-
# 'filename': '%(name)s_v%(version)s',
97-
# 'download_filename': '%(name)s',
98-
# 'extract_cmd': 'cp %s ' + _lname}],
99-
# 'cmds_map': [('.*', '')],
100-
# 'files_to_copy': [(['*.pt'], _models_dst)],
101-
# }) for _lname, _lver in _models]
102-
103-
builddependencies = [('wget', '1.21.3')]
10418

10519
dependencies = [
10620
('Python', '3.10.4'),
@@ -110,6 +24,8 @@ dependencies = [
11024
('e3nn', '0.3.3', versionsuffix),
11125
('Hydra', '1.3.2'),
11226
('DGL', '1.1.1', versionsuffix),
27+
('RFdiffusion-models', '1.1.0','', SYSTEM),
28+
('RFdiffusion-schedules', '1.1.0', '', SYSTEM),
11329
]
11430

11531
use_pip = True
@@ -122,7 +38,7 @@ exts_list = [
12238
('executing', '1.2.0', {
12339
'checksums': ['19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107'],
12440
}),
125-
('icecream', '2.1.3', { # not req. in RFdiffusion > 1.1.0 (removed with commit 06ae1cb)
41+
('icecream', '2.1.3', {
12642
'checksums': ['0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de'],
12743
}),
12844
('dllogger', '1.0.0', {
@@ -143,33 +59,23 @@ exts_list = [
14359
(name, version, {
14460
'patches': [
14561
'RFdiffusion-1.1.0_setup.patch',
62+
# change default paths of models and schedules to $RFDIFFUSION_MODELS and RFDIFFUSION_SCHEDULES
63+
# to be set by dependencies RFDiffusion-models and RFDiffusion-schedules.
64+
# Expect default config in _pysp/rfdiffusion/config/inference:
14665
'RFdiffusion-1.1.0_data_paths.patch',
14766
],
14867
'source_urls': ['https://github.com/RosettaCommons/RFdiffusion/archive/refs/tags/'],
14968
'sources': [{'filename': '%(name)s-%(version)s.tar.gz', 'download_filename': 'v%(version)s.tar.gz'}],
15069
'checksums': [
15170
{'RFdiffusion-1.1.0.tar.gz': '57d82f0d43540c2912eda3f1d34ad90b13db14966ee069c427e217fe78f0297f'},
15271
{'RFdiffusion-1.1.0_setup.patch': '1d17fae9d4d3716814f0d9bb6587658590dc07772c87e92fb9ad81cda6a2539d'},
153-
{'RFdiffusion-1.1.0_data_paths.patch': 'e4987c73e12deb08f22aad1b7928f891e7a9cb6289dff59a2f22e0d77745cd20'},
72+
{'RFdiffusion-1.1.0_data_paths.patch': '3d1ddd1684004b4757958ef3d07b96a0f8976091fe670381fc723ad4eb6d65a5'},
15473
],
15574
}),
15675
]
15776

158-
159-
modextravars = {
160-
'RFDIFFUSION_MODELS': _models_dst,
161-
'RFDIFFUSION_SCHEDULES': _schedules_dst
162-
}
16377
postinstallcmds = [
16478
'cp -rpP config examples %s/%%(namelower)s' % _pysp,
165-
'cd %s/%%(namelower)s/ && ln --relative -s %s %s .' % (_pysp, _models_dst, _schedules_dst),
166-
'mkdir -p %s %s' % (_models_dst, _schedules_dst),
167-
#
168-
# comment out two following lines if you prefer to download models
169-
# (https://github.com/RosettaCommons/RFdiffusion/blob/main/scripts/download_models.sh) and schedules
170-
# (https://files.ipd.uw.edu/krypton/schedules.zip) manually or if you prefer to install them as a component:
171-
_get_schedules,
172-
_get_models
17379
]
17480

17581
sanity_check_commands = [
@@ -179,12 +85,10 @@ sanity_check_commands = [
17985
]
18086

18187
sanity_check_paths = {
182-
'files': ['%s/%s' % (_models_dst, x) for (x, _) in _models],
88+
'files': [],
18389
'dirs': [
18490
'%s/%%(namelower)s/inference' % _pysp,
18591
'%s/%%(namelower)s/examples' % _pysp,
186-
_models_dst,
187-
_schedules_dst,
18892
'%s/%%(namelower)s/config/inference' % _pysp]
18993
}
19094

easybuild/easyconfigs/r/RFdiffusion/RFdiffusion-1.1.0_data_paths.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Thomas Hoffmann, EMBL Heidelberg, [email protected], 2023/07
2-
# default paths for config, models, schedules, and examples in site-packages/rfdiffusion
1+
# Thomas Hoffmann, EMBL Heidelberg, [email protected], 2024/03
2+
# default paths for config, models, schedules, and examples in site-packages/rfdiffusion, $RFDIFFUSION_MODELS, and $RFDIFFUSION_SCHEDULES
33
diff -ru RFdiffusion-1.1.0/rfdiffusion/inference/model_runners.py RFdiffusion-1.1.0_data_paths/rfdiffusion/inference/model_runners.py
44
--- RFdiffusion-1.1.0/rfdiffusion/inference/model_runners.py 2023-04-03 23:33:05.000000000 +0200
55
+++ RFdiffusion-1.1.0_data_paths/rfdiffusion/inference/model_runners.py 2023-08-08 18:04:13.224021765 +0200
@@ -18,7 +18,7 @@ diff -ru RFdiffusion-1.1.0/rfdiffusion/inference/model_runners.py RFdiffusion-1.
1818
model_directory = conf.inference.model_directory_path
1919
else:
2020
- model_directory = f"{SCRIPT_DIR}/../../models"
21-
+ model_directory = f"{rfdiffusion_dir[0]}/models"
21+
+ model_directory = os.getenv('RFDIFFUSION_MODELS')
2222

2323
print(f"Reading models from {model_directory}")
2424

@@ -27,7 +27,7 @@ diff -ru RFdiffusion-1.1.0/rfdiffusion/inference/model_runners.py RFdiffusion-1.
2727
schedule_directory = conf.inference.schedule_directory_path
2828
else:
2929
- schedule_directory = f"{SCRIPT_DIR}/../../schedules"
30-
+ schedule_directory = f"{rfdiffusion_dir[0]}/schedules"
30+
+ schedule_directory = os.getenv('RFDIFFUSION_SCHEDULES')
3131

3232
# Check for cache schedule
3333
if not os.path.exists(schedule_directory):

0 commit comments

Comments
 (0)