@platforma-open/milaboratories.3d-structure-prediction.software 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/3d-structure-prediction/3d-structure-prediction/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.3d-structure-prediction.software@1.0.4 build /home/runner/work/3d-structure-prediction/3d-structure-prediction/software
3
+ > @platforma-open/milaboratories.3d-structure-prediction.software@1.0.6 build /home/runner/work/3d-structure-prediction/3d-structure-prediction/software
4
4
  > pl-pkg build
5
5
 
6
6
  info: Building docker images...
@@ -8,8 +8,8 @@
8
8
  #0 building with "default" instance using docker driver
9
9
 
10
10
  #1 [internal] load build definition from Dockerfile
11
- #1 transferring dockerfile: 3.16kB done
12
- #1 DONE 0.1s
11
+ #1 transferring dockerfile: 3.16kB 0.0s done
12
+ #1 DONE 0.0s
13
13
 
14
14
  #2 resolve image config for docker-image://docker.io/docker/dockerfile:1
15
15
  #2 ...
@@ -18,64 +18,66 @@
18
18
  #3 DONE 0.0s
19
19
 
20
20
  #2 resolve image config for docker-image://docker.io/docker/dockerfile:1
21
- #2 DONE 0.7s
21
+ #2 DONE 0.9s
22
22
 
23
23
  #4 docker-image://docker.io/docker/dockerfile:1@sha256:2780b5c3bab67f1f76c781860de469442999ed1a0d7992a5efdf2cffc0e3d769
24
24
  #4 resolve docker.io/docker/dockerfile:1@sha256:2780b5c3bab67f1f76c781860de469442999ed1a0d7992a5efdf2cffc0e3d769 done
25
+ #4 sha256:14cdce40ae0e938cf7d2d7fe6aa3dec2beb66aa066d6a54356c64fd8af6323c2 1.33kB / 1.33kB done
26
+ #4 sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 2.10MB / 14.11MB 0.1s
25
27
  #4 sha256:2780b5c3bab67f1f76c781860de469442999ed1a0d7992a5efdf2cffc0e3d769 8.43kB / 8.43kB done
26
28
  #4 sha256:369c4e6584693f8e13d7a27755a6b10201798e229cdfad5eae04ea5f15a76412 1.13kB / 1.13kB done
27
- #4 sha256:14cdce40ae0e938cf7d2d7fe6aa3dec2beb66aa066d6a54356c64fd8af6323c2 1.33kB / 1.33kB done
28
- #4 sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 0B / 14.11MB 0.1s
29
- #4 sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 3.15MB / 14.11MB 0.2s
30
- #4 sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 14.11MB / 14.11MB 0.3s done
29
+ #4 sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 14.11MB / 14.11MB 0.1s done
31
30
  #4 extracting sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 0.1s
32
31
  #4 extracting sha256:bcb5d2ab7af67a669c932851c8bb8a26895dda6258900edfd7429d57bfd3592f 0.1s done
33
- #4 DONE 0.4s
32
+ #4 DONE 0.3s
34
33
 
35
- #5 [auth] mambaorg/micromamba:pull token for registry-1.docker.io
36
- #5 DONE 0.0s
34
+ #5 [internal] load metadata for docker.io/mambaorg/micromamba:1.5.10
35
+ #5 ...
37
36
 
38
- #6 [internal] load metadata for docker.io/mambaorg/micromamba:1.5.10
39
- #6 DONE 0.6s
37
+ #6 [auth] mambaorg/micromamba:pull token for registry-1.docker.io
38
+ #6 DONE 0.0s
39
+
40
+ #5 [internal] load metadata for docker.io/mambaorg/micromamba:1.5.10
41
+ #5 DONE 0.8s
40
42
 
41
43
  #7 [internal] load .dockerignore
42
44
  #7 transferring context: 2B done
43
45
  #7 DONE 0.0s
44
46
 
45
47
  #8 [internal] load build context
46
- #8 transferring context: 36.40kB done
48
+ #8 transferring context: 36.22kB done
47
49
  #8 DONE 0.0s
48
50
 
49
51
  #9 [1/7] FROM docker.io/mambaorg/micromamba:1.5.10@sha256:e3797091302382ea841498bc93a7b0a50f7c1448333d5e946d2d1608d0c5f43d
50
52
  #9 resolve docker.io/mambaorg/micromamba:1.5.10@sha256:e3797091302382ea841498bc93a7b0a50f7c1448333d5e946d2d1608d0c5f43d done
51
- #9 sha256:c5ef7ca066aec9ae6b5a07ceca914beded0754d74f2006b33ee80cb661688f74 6.28kB / 6.28kB done
52
- #9 sha256:0d56d98386a9a231fee4dcf145a261d9d12da39f1c5a5d3bbe09a1aa727febf8 0B / 122.68kB 0.1s
53
- #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 0B / 29.13MB 0.1s
54
53
  #9 sha256:e3797091302382ea841498bc93a7b0a50f7c1448333d5e946d2d1608d0c5f43d 2.36kB / 2.36kB done
55
54
  #9 sha256:008e06cd8432eb558faa4738a092f30b38dd8db3137a5dd3fca57374a790825b 2.56kB / 2.56kB done
55
+ #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 0B / 29.13MB 0.1s
56
56
  #9 sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880 0B / 6.20MB 0.1s
57
- #9 sha256:0d56d98386a9a231fee4dcf145a261d9d12da39f1c5a5d3bbe09a1aa727febf8 122.68kB / 122.68kB 0.2s done
58
- #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 2.10MB / 29.13MB 0.2s
57
+ #9 sha256:c5ef7ca066aec9ae6b5a07ceca914beded0754d74f2006b33ee80cb661688f74 6.28kB / 6.28kB done
58
+ #9 sha256:0d56d98386a9a231fee4dcf145a261d9d12da39f1c5a5d3bbe09a1aa727febf8 0B / 122.68kB 0.1s
59
+ #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 6.29MB / 29.13MB 0.2s
60
+ #9 sha256:0d56d98386a9a231fee4dcf145a261d9d12da39f1c5a5d3bbe09a1aa727febf8 122.68kB / 122.68kB 0.1s done
59
61
  #9 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0B / 32B 0.2s
60
- #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 28.31MB / 29.13MB 0.3s
61
- #9 sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880 1.05MB / 6.20MB 0.3s
62
- #9 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B 0.2s done
63
- #9 sha256:1b19c15ef8e221c4e8f2f5233ce6dcb27342ecf18997a0576cf301345df0b2ed 521B / 521B 0.3s done
62
+ #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 29.13MB / 29.13MB 0.3s done
63
+ #9 sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880 6.20MB / 6.20MB 0.3s done
64
+ #9 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B 0.3s done
64
65
  #9 sha256:51b5951dad11c47781e0b67c512ab7f1b148983b42cb5b8cbfb3ea6e8d28a602 0B / 282B 0.3s
66
+ #9 sha256:9a782d6d1eace15aadfa1d16eb83ad2abdea075c6c9e200247950571a3719e10 0B / 3.77kB 0.3s
67
+ #9 sha256:1b19c15ef8e221c4e8f2f5233ce6dcb27342ecf18997a0576cf301345df0b2ed 0B / 521B 0.3s
65
68
  #9 extracting sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b
66
- #9 sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 29.13MB / 29.13MB 0.3s done
67
- #9 sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880 6.20MB / 6.20MB 0.4s done
68
69
  #9 sha256:51b5951dad11c47781e0b67c512ab7f1b148983b42cb5b8cbfb3ea6e8d28a602 282B / 282B 0.4s done
69
- #9 sha256:8b456163e45ffc9e8274e77e02d1a5a166f27e760db7314ea9ee89f5578090d6 0B / 215B 0.4s
70
- #9 sha256:c1d339bd3cdc8184904ef6ed4e4685a7551020e738a57e9b8c27edead08b3461 0B / 645B 0.4s
70
+ #9 sha256:1b19c15ef8e221c4e8f2f5233ce6dcb27342ecf18997a0576cf301345df0b2ed 521B / 521B 0.4s done
71
71
  #9 sha256:e9e8562f12ed796758a0790bfccb45f2463190f4ba8696dac09a9f22b20e37e3 0B / 683B 0.4s
72
+ #9 sha256:8b456163e45ffc9e8274e77e02d1a5a166f27e760db7314ea9ee89f5578090d6 0B / 215B 0.4s
72
73
  #9 sha256:9a782d6d1eace15aadfa1d16eb83ad2abdea075c6c9e200247950571a3719e10 3.77kB / 3.77kB 0.4s done
73
- #9 sha256:8b456163e45ffc9e8274e77e02d1a5a166f27e760db7314ea9ee89f5578090d6 215B / 215B 0.4s done
74
- #9 sha256:c1d339bd3cdc8184904ef6ed4e4685a7551020e738a57e9b8c27edead08b3461 645B / 645B 0.5s done
75
74
  #9 sha256:e9e8562f12ed796758a0790bfccb45f2463190f4ba8696dac09a9f22b20e37e3 683B / 683B 0.5s done
75
+ #9 sha256:8b456163e45ffc9e8274e77e02d1a5a166f27e760db7314ea9ee89f5578090d6 215B / 215B 0.4s done
76
+ #9 sha256:c1d339bd3cdc8184904ef6ed4e4685a7551020e738a57e9b8c27edead08b3461 0B / 645B 0.5s
76
77
  #9 sha256:db3fc724910ed98f15e8511e8024faf769a34901595e617bd4c7ebd8b8b8fd29 0B / 345B 0.5s
78
+ #9 sha256:c1d339bd3cdc8184904ef6ed4e4685a7551020e738a57e9b8c27edead08b3461 645B / 645B 0.5s done
77
79
  #9 sha256:db3fc724910ed98f15e8511e8024faf769a34901595e617bd4c7ebd8b8b8fd29 345B / 345B 0.5s done
78
- #9 extracting sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 1.1s done
80
+ #9 extracting sha256:a2318d6c47ec9cac5acc500c47c79602bcf953cec711a18bc898911a0984365b 1.4s done
79
81
  #9 extracting sha256:0d56d98386a9a231fee4dcf145a261d9d12da39f1c5a5d3bbe09a1aa727febf8 done
80
82
  #9 extracting sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880
81
83
  #9 extracting sha256:30fe8036db79bfbab0cdf8d102dcfd22ee410944fed17b23851977246235b880 0.1s done
@@ -88,278 +90,278 @@
88
90
  #9 extracting sha256:e9e8562f12ed796758a0790bfccb45f2463190f4ba8696dac09a9f22b20e37e3 done
89
91
  #9 extracting sha256:c1d339bd3cdc8184904ef6ed4e4685a7551020e738a57e9b8c27edead08b3461 done
90
92
  #9 extracting sha256:db3fc724910ed98f15e8511e8024faf769a34901595e617bd4c7ebd8b8b8fd29 done
91
- #9 DONE 1.8s
93
+ #9 DONE 2.1s
92
94
 
93
95
  #10 [2/7] RUN micromamba install -y -n base -c bioconda -c conda-forge python=3.12.10 anarci hmmer biopython=1.85 openmm=8.3.1 pdbfixer=1.12.0 numpy=2.4.3 scipy=1.17.1 && micromamba clean --all --yes
94
- #10 16.05
95
- #10 16.05 Transaction
96
- #10 16.05
97
- #10 16.05 Prefix: /opt/conda
98
- #10 16.05
99
- #10 16.05 Updating specs:
100
- #10 16.05
101
- #10 16.05 - python=3.12.10
102
- #10 16.05 - anarci
103
- #10 16.05 - hmmer
104
- #10 16.05 - biopython=1.85
105
- #10 16.05 - openmm=8.3.1
106
- #10 16.05 - pdbfixer=1.12.0
107
- #10 16.05 - numpy=2.4.3
108
- #10 16.05 - scipy=1.17.1
109
- #10 16.05
110
- #10 16.05
111
- #10 16.06 Package Version Build Channel Size
112
- #10 16.06 ───────────────────────────────────────────────────────────────────────────────
113
- #10 16.06 Install:
114
- #10 16.06 ───────────────────────────────────────────────────────────────────────────────
115
- #10 16.06
116
- #10 16.06 + python_abi 3.12 8_cp312 conda-forge 7kB
117
- #10 16.06 + tzdata 2025c hc9c84f9_1 conda-forge 119kB
118
- #10 16.06 + ca-certificates 2026.4.22 hbd8a1cb_0 conda-forge 131kB
119
- #10 16.06 + cuda-version 12.9 h4f385c5_3 conda-forge 22kB
120
- #10 16.06 + libzlib 1.3.2 h25fd6f3_2 conda-forge 64kB
121
- #10 16.06 + libgomp 15.2.0 he0feb66_18 conda-forge 603kB
122
- #10 16.06 + mpi 1.0 openmpi conda-forge 4kB
123
- #10 16.06 + zlib 1.3.2 h25fd6f3_2 conda-forge 96kB
124
- #10 16.06 + zstd 1.5.7 hb78ec9c_6 conda-forge 601kB
125
- #10 16.06 + _openmp_mutex 4.5 20_gnu conda-forge 29kB
126
- #10 16.06 + ld_impl_linux-64 2.45.1 default_hbd61a6d_102 conda-forge 728kB
127
- #10 16.06 + libgcc 15.2.0 he0feb66_18 conda-forge 1MB
128
- #10 16.06 + tk 8.6.13 noxft_h366c992_103 conda-forge 3MB
129
- #10 16.06 + libsqlite 3.53.1 h0c1763c_0 conda-forge 955kB
130
- #10 16.06 + openssl 3.6.2 h35e630c_0 conda-forge 3MB
131
- #10 16.06 + ncurses 6.6 hdb14827_0 conda-forge 919kB
132
- #10 16.06 + libuuid 2.42 h5347b49_0 conda-forge 40kB
133
- #10 16.06 + libnsl 2.0.1 hb9d3cd8_1 conda-forge 34kB
134
- #10 16.06 + liblzma 5.8.3 hb03c661_0 conda-forge 113kB
135
- #10 16.06 + libffi 3.4.6 h2dba641_1 conda-forge 57kB
136
- #10 16.06 + libexpat 2.8.0 hecca717_0 conda-forge 77kB
137
- #10 16.06 + bzip2 1.0.8 hda65f42_9 conda-forge 260kB
138
- #10 16.06 + libstdcxx 15.2.0 h934c35e_18 conda-forge 6MB
139
- #10 16.06 + libgcc-ng 15.2.0 h69a702a_18 conda-forge 28kB
140
- #10 16.06 + libgfortran5 15.2.0 h68bc16d_18 conda-forge 2MB
141
- #10 16.06 + readline 8.3 h853b02a_0 conda-forge 345kB
142
- #10 16.06 + opencl-headers 2025.06.13 hecca717_0 conda-forge 56kB
143
- #10 16.06 + libstdcxx-ng 15.2.0 hdf11a46_18 conda-forge 28kB
144
- #10 16.06 + libcufft 11.4.1.4 hecca717_1 conda-forge 162MB
145
- #10 16.06 + cuda-nvrtc 12.9.86 hecca717_1 conda-forge 67MB
146
- #10 16.06 + libxcrypt 4.4.36 hd590300_1 conda-forge 100kB
147
- #10 16.06 + libgfortran 15.2.0 h69a702a_18 conda-forge 28kB
148
- #10 16.06 + ocl-icd 2.3.3 hb9d3cd8_0 conda-forge 107kB
149
- #10 16.06 + python 3.12.10 h9e4cc4f_0_cpython conda-forge 31MB
150
- #10 16.06 + libgfortran-ng 15.2.0 h69a702a_18 conda-forge 28kB
151
- #10 16.06 + libopenblas 0.3.32 pthreads_h94d23a6_0 conda-forge 6MB
152
- #10 16.06 + ocl-icd-system 1.0.0 1 conda-forge 4kB
153
- #10 16.06 + openmpi 4.1.6 hc5af2df_101 conda-forge 4MB
154
- #10 16.06 + libblas 3.11.0 6_h4a7cf45_openblas conda-forge 19kB
155
- #10 16.06 + libcblas 3.11.0 6_h0358290_openblas conda-forge 19kB
156
- #10 16.06 + liblapack 3.11.0 6_h47877c9_openblas conda-forge 19kB
157
- #10 16.06 + gsl 2.7 he838d99_0 conda-forge 3MB
158
- #10 16.06 + packaging 26.2 pyhc364b38_0 conda-forge 92kB
159
- #10 16.06 + setuptools 82.0.1 pyh332efcf_0 conda-forge 640kB
160
- #10 16.06 + wheel 0.47.0 pyhd8ed1ab_0 conda-forge 33kB
161
- #10 16.06 + pip 26.1.1 pyh8b19718_0 conda-forge 1MB
162
- #10 16.06 + legacy-cgi 2.6.4 pyhcf101f3_0 conda-forge 20kB
163
- #10 16.06 + hmmer 3.4 hb6cb901_4 bioconda 12MB
164
- #10 16.06 + numpy 2.4.3 py312h33ff503_0 conda-forge 9MB
165
- #10 16.06 + biopython 1.85 py312h4c3975b_2 conda-forge 3MB
166
- #10 16.06 + scipy 1.17.1 py312h54fa4ab_0 conda-forge 17MB
167
- #10 16.06 + openmm 8.3.1 py312h50c43f0_0 conda-forge 13MB
168
- #10 16.06 + anarci 2024.05.21 pyhdfd78af_0 bioconda 1MB
169
- #10 16.06 + pdbfixer 1.12 pyhd8ed1ab_1 conda-forge 546kB
170
- #10 16.06
171
- #10 16.06 Summary:
172
- #10 16.06
173
- #10 16.06 Install: 54 packages
174
- #10 16.06
175
- #10 16.06 Total download: 353MB
176
- #10 16.06
177
- #10 16.06 ───────────────────────────────────────────────────────────────────────────────
178
- #10 16.06
179
- #10 16.06
180
- #10 16.06
181
- #10 16.06 Transaction starting
182
- #10 21.51
183
- #10 21.65
184
- #10 21.65 For Linux 64, Open MPI is built with CUDA awareness but this support is disabled by default.
185
- #10 21.65 To enable it, please set the environment variable OMPI_MCA_opal_cuda_support=true before
186
- #10 21.65 launching your MPI processes. Equivalently, you can set the MCA parameter in the command line:
187
- #10 21.65 mpiexec --mca opal_cuda_support 1 ...
188
- #10 21.65
189
- #10 21.65 In addition, the UCX support is also built but disabled by default.
190
- #10 21.65 To enable it, first install UCX (conda install -c conda-forge ucx). Then, set the environment
191
- #10 21.65 variables OMPI_MCA_pml="ucx" OMPI_MCA_osc="ucx" before launching your MPI processes.
192
- #10 21.65 Equivalently, you can set the MCA parameters in the command line:
193
- #10 21.65 mpiexec --mca pml ucx --mca osc ucx ...
194
- #10 21.65 Note that you might also need to set UCX_MEMTYPE_CACHE=n for CUDA awareness via UCX.
195
- #10 21.65 Please consult UCX's documentation for detail.
196
- #10 21.65
197
- #10 21.65
198
- #10 22.75
199
- #10 22.75 Transaction finished
200
- #10 22.75
201
- #10 22.75 To activate this environment, use:
202
- #10 22.75
203
- #10 22.75 micromamba activate base
204
- #10 22.75
205
- #10 22.75 Or to execute a single command in this environment, use:
206
- #10 22.75
207
- #10 22.75 micromamba run -n base mycommand
208
- #10 22.75
209
- #10 22.78 Collect information..
210
- #10 22.78 Cleaning index cache..
211
- #10 22.84 Cleaning lock files..
212
- #10 22.84 Package file Size
213
- #10 22.84 ───────────────────────────────────────────────────────────────
214
- #10 22.84 /opt/conda/pkgs
215
- #10 22.84 ───────────────────────────────────────────────────────────────
216
- #10 22.84
217
- #10 22.84 _openmp_mutex-4.5-20_gnu.conda 29kB
218
- #10 22.84 anarci-2024.05.21-pyhdfd78af_0.tar.bz2 1MB
219
- #10 22.84 biopython-1.85-py312h4c3975b_2.conda 3MB
220
- #10 22.84 bzip2-1.0.8-hda65f42_9.conda 260kB
221
- #10 22.84 ca-certificates-2026.4.22-hbd8a1cb_0.conda 131kB
222
- #10 22.84 cuda-nvrtc-12.9.86-hecca717_1.conda 67MB
223
- #10 22.84 cuda-version-12.9-h4f385c5_3.conda 22kB
224
- #10 22.84 gsl-2.7-he838d99_0.tar.bz2 3MB
225
- #10 22.84 hmmer-3.4-hb6cb901_4.tar.bz2 12MB
226
- #10 22.84 ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda 728kB
227
- #10 22.84 legacy-cgi-2.6.4-pyhcf101f3_0.conda 20kB
228
- #10 22.84 libblas-3.11.0-6_h4a7cf45_openblas.conda 19kB
229
- #10 22.84 libcblas-3.11.0-6_h0358290_openblas.conda 19kB
230
- #10 22.84 libcufft-11.4.1.4-hecca717_1.conda 162MB
231
- #10 22.84 libexpat-2.8.0-hecca717_0.conda 77kB
232
- #10 22.84 libffi-3.4.6-h2dba641_1.conda 57kB
233
- #10 22.84 libgcc-15.2.0-he0feb66_18.conda 1MB
234
- #10 22.84 libgcc-ng-15.2.0-h69a702a_18.conda 28kB
235
- #10 22.84 libgfortran-15.2.0-h69a702a_18.conda 28kB
236
- #10 22.84 libgfortran-ng-15.2.0-h69a702a_18.conda 28kB
237
- #10 22.84 libgfortran5-15.2.0-h68bc16d_18.conda 2MB
238
- #10 22.84 libgomp-15.2.0-he0feb66_18.conda 603kB
239
- #10 22.84 liblapack-3.11.0-6_h47877c9_openblas.conda 19kB
240
- #10 22.84 liblzma-5.8.3-hb03c661_0.conda 113kB
241
- #10 22.84 libnsl-2.0.1-hb9d3cd8_1.conda 34kB
242
- #10 22.84 libopenblas-0.3.32-pthreads_h94d23a6_0.conda 6MB
243
- #10 22.84 libsqlite-3.53.1-h0c1763c_0.conda 955kB
244
- #10 22.84 libstdcxx-15.2.0-h934c35e_18.conda 6MB
245
- #10 22.84 libstdcxx-ng-15.2.0-hdf11a46_18.conda 28kB
246
- #10 22.84 libuuid-2.42-h5347b49_0.conda 40kB
247
- #10 22.84 libxcrypt-4.4.36-hd590300_1.conda 100kB
248
- #10 22.84 libzlib-1.3.2-h25fd6f3_2.conda 64kB
249
- #10 22.84 mpi-1.0-openmpi.tar.bz2 4kB
250
- #10 22.84 ncurses-6.6-hdb14827_0.conda 919kB
251
- #10 22.84 numpy-2.4.3-py312h33ff503_0.conda 9MB
252
- #10 22.84 ocl-icd-2.3.3-hb9d3cd8_0.conda 107kB
253
- #10 22.84 ocl-icd-system-1.0.0-1.tar.bz2 4kB
254
- #10 22.84 opencl-headers-2025.06.13-hecca717_0.conda 56kB
255
- #10 22.84 openmm-8.3.1-py312h50c43f0_0.conda 13MB
256
- #10 22.84 openmpi-4.1.6-hc5af2df_101.conda 4MB
257
- #10 22.84 openssl-3.6.2-h35e630c_0.conda 3MB
258
- #10 22.84 packaging-26.2-pyhc364b38_0.conda 92kB
259
- #10 22.84 pdbfixer-1.12-pyhd8ed1ab_1.conda 546kB
260
- #10 22.84 pip-26.1.1-pyh8b19718_0.conda 1MB
261
- #10 22.84 python-3.12.10-h9e4cc4f_0_cpython.conda 31MB
262
- #10 22.84 python_abi-3.12-8_cp312.conda 7kB
263
- #10 22.84 readline-8.3-h853b02a_0.conda 345kB
264
- #10 22.84 scipy-1.17.1-py312h54fa4ab_0.conda 17MB
265
- #10 22.84 setuptools-82.0.1-pyh332efcf_0.conda 640kB
266
- #10 22.84 tk-8.6.13-noxft_h366c992_103.conda 3MB
267
- #10 22.84 tzdata-2025c-hc9c84f9_1.conda 119kB
268
- #10 22.84 wheel-0.47.0-pyhd8ed1ab_0.conda 33kB
269
- #10 22.84 zlib-1.3.2-h25fd6f3_2.conda 96kB
270
- #10 22.84 zstd-1.5.7-hb78ec9c_6.conda 601kB
271
- #10 22.84
272
- #10 22.84 /root/.mamba/pkgs
273
- #10 22.84 ───────────────────────────────────────────────────────────────
274
- #10 22.84
275
- #10 22.84
276
- #10 22.84
277
- #10 22.84 ───────────────────────────────────────────────────────────────
278
- #10 22.84
279
- #10 22.84 Total size: 353MB
280
- #10 22.84 Cleaning tarballs..
281
- #10 22.88 Cleaning packages..
282
- #10 DONE 25.3s
96
+ #10 19.46
97
+ #10 19.46 Transaction
98
+ #10 19.46
99
+ #10 19.46 Prefix: /opt/conda
100
+ #10 19.46
101
+ #10 19.46 Updating specs:
102
+ #10 19.46
103
+ #10 19.46 - python=3.12.10
104
+ #10 19.46 - anarci
105
+ #10 19.46 - hmmer
106
+ #10 19.46 - biopython=1.85
107
+ #10 19.46 - openmm=8.3.1
108
+ #10 19.46 - pdbfixer=1.12.0
109
+ #10 19.46 - numpy=2.4.3
110
+ #10 19.46 - scipy=1.17.1
111
+ #10 19.46
112
+ #10 19.46
113
+ #10 19.47 Package Version Build Channel Size
114
+ #10 19.47 ───────────────────────────────────────────────────────────────────────────────
115
+ #10 19.47 Install:
116
+ #10 19.47 ───────────────────────────────────────────────────────────────────────────────
117
+ #10 19.47
118
+ #10 19.47 + python_abi 3.12 8_cp312 conda-forge 7kB
119
+ #10 19.47 + tzdata 2025c hc9c84f9_1 conda-forge 119kB
120
+ #10 19.47 + ca-certificates 2026.4.22 hbd8a1cb_0 conda-forge 131kB
121
+ #10 19.47 + cuda-version 12.9 h4f385c5_3 conda-forge 22kB
122
+ #10 19.47 + libzlib 1.3.2 h25fd6f3_2 conda-forge 64kB
123
+ #10 19.47 + libgomp 15.2.0 he0feb66_19 conda-forge 604kB
124
+ #10 19.47 + mpi 1.0 openmpi conda-forge 4kB
125
+ #10 19.47 + zlib 1.3.2 h25fd6f3_2 conda-forge 96kB
126
+ #10 19.47 + zstd 1.5.7 hb78ec9c_6 conda-forge 601kB
127
+ #10 19.47 + _openmp_mutex 4.5 20_gnu conda-forge 29kB
128
+ #10 19.47 + ld_impl_linux-64 2.45.1 default_hbd61a6d_102 conda-forge 728kB
129
+ #10 19.47 + libgcc 15.2.0 he0feb66_19 conda-forge 1MB
130
+ #10 19.47 + tk 8.6.13 noxft_h366c992_103 conda-forge 3MB
131
+ #10 19.47 + libsqlite 3.53.1 h0c1763c_0 conda-forge 955kB
132
+ #10 19.47 + openssl 3.6.2 h35e630c_0 conda-forge 3MB
133
+ #10 19.47 + ncurses 6.6 hdb14827_0 conda-forge 919kB
134
+ #10 19.47 + libuuid 2.42.1 h5347b49_0 conda-forge 40kB
135
+ #10 19.47 + libnsl 2.0.1 hb9d3cd8_1 conda-forge 34kB
136
+ #10 19.47 + liblzma 5.8.3 hb03c661_0 conda-forge 113kB
137
+ #10 19.47 + libffi 3.4.6 h2dba641_1 conda-forge 57kB
138
+ #10 19.47 + libexpat 2.8.0 hecca717_0 conda-forge 77kB
139
+ #10 19.47 + bzip2 1.0.8 hda65f42_9 conda-forge 260kB
140
+ #10 19.47 + libstdcxx 15.2.0 h934c35e_19 conda-forge 6MB
141
+ #10 19.47 + libgcc-ng 15.2.0 h69a702a_19 conda-forge 28kB
142
+ #10 19.47 + libgfortran5 15.2.0 h68bc16d_19 conda-forge 2MB
143
+ #10 19.47 + readline 8.3 h853b02a_0 conda-forge 345kB
144
+ #10 19.47 + opencl-headers 2025.06.13 hecca717_0 conda-forge 56kB
145
+ #10 19.47 + libstdcxx-ng 15.2.0 hdf11a46_19 conda-forge 28kB
146
+ #10 19.47 + libcufft 11.4.1.4 hecca717_1 conda-forge 162MB
147
+ #10 19.47 + cuda-nvrtc 12.9.86 hecca717_1 conda-forge 67MB
148
+ #10 19.47 + libxcrypt 4.4.36 hd590300_1 conda-forge 100kB
149
+ #10 19.47 + libgfortran 15.2.0 h69a702a_19 conda-forge 28kB
150
+ #10 19.47 + ocl-icd 2.3.3 hb9d3cd8_0 conda-forge 107kB
151
+ #10 19.47 + python 3.12.10 h9e4cc4f_0_cpython conda-forge 31MB
152
+ #10 19.47 + libgfortran-ng 15.2.0 h69a702a_19 conda-forge 28kB
153
+ #10 19.47 + libopenblas 0.3.33 pthreads_h94d23a6_0 conda-forge 6MB
154
+ #10 19.47 + ocl-icd-system 1.0.0 1 conda-forge 4kB
155
+ #10 19.47 + openmpi 4.1.6 hc5af2df_101 conda-forge 4MB
156
+ #10 19.47 + libblas 3.11.0 7_h4a7cf45_openblas conda-forge 19kB
157
+ #10 19.47 + libcblas 3.11.0 7_h0358290_openblas conda-forge 19kB
158
+ #10 19.47 + liblapack 3.11.0 7_h47877c9_openblas conda-forge 19kB
159
+ #10 19.47 + gsl 2.7 he838d99_0 conda-forge 3MB
160
+ #10 19.47 + packaging 26.2 pyhc364b38_0 conda-forge 92kB
161
+ #10 19.47 + setuptools 82.0.1 pyh332efcf_0 conda-forge 640kB
162
+ #10 19.47 + wheel 0.47.0 pyhd8ed1ab_0 conda-forge 33kB
163
+ #10 19.47 + pip 26.1.1 pyh8b19718_0 conda-forge 1MB
164
+ #10 19.47 + legacy-cgi 2.6.4 pyhcf101f3_0 conda-forge 20kB
165
+ #10 19.47 + hmmer 3.4 hb6cb901_4 bioconda 12MB
166
+ #10 19.47 + numpy 2.4.3 py312h33ff503_0 conda-forge 9MB
167
+ #10 19.47 + biopython 1.85 py312h4c3975b_2 conda-forge 3MB
168
+ #10 19.47 + scipy 1.17.1 py312h54fa4ab_0 conda-forge 17MB
169
+ #10 19.47 + openmm 8.3.1 py312h50c43f0_0 conda-forge 13MB
170
+ #10 19.47 + anarci 2024.05.21 pyhdfd78af_0 bioconda 1MB
171
+ #10 19.47 + pdbfixer 1.12 pyhd8ed1ab_1 conda-forge 546kB
172
+ #10 19.47
173
+ #10 19.47 Summary:
174
+ #10 19.47
175
+ #10 19.47 Install: 54 packages
176
+ #10 19.47
177
+ #10 19.47 Total download: 353MB
178
+ #10 19.47
179
+ #10 19.47 ───────────────────────────────────────────────────────────────────────────────
180
+ #10 19.47
181
+ #10 19.47
182
+ #10 19.47
183
+ #10 19.47 Transaction starting
184
+ #10 24.63
185
+ #10 24.77
186
+ #10 24.77 For Linux 64, Open MPI is built with CUDA awareness but this support is disabled by default.
187
+ #10 24.77 To enable it, please set the environment variable OMPI_MCA_opal_cuda_support=true before
188
+ #10 24.77 launching your MPI processes. Equivalently, you can set the MCA parameter in the command line:
189
+ #10 24.77 mpiexec --mca opal_cuda_support 1 ...
190
+ #10 24.77
191
+ #10 24.77 In addition, the UCX support is also built but disabled by default.
192
+ #10 24.77 To enable it, first install UCX (conda install -c conda-forge ucx). Then, set the environment
193
+ #10 24.77 variables OMPI_MCA_pml="ucx" OMPI_MCA_osc="ucx" before launching your MPI processes.
194
+ #10 24.77 Equivalently, you can set the MCA parameters in the command line:
195
+ #10 24.77 mpiexec --mca pml ucx --mca osc ucx ...
196
+ #10 24.77 Note that you might also need to set UCX_MEMTYPE_CACHE=n for CUDA awareness via UCX.
197
+ #10 24.77 Please consult UCX's documentation for detail.
198
+ #10 24.77
199
+ #10 24.77
200
+ #10 25.83
201
+ #10 25.83 Transaction finished
202
+ #10 25.83
203
+ #10 25.83 To activate this environment, use:
204
+ #10 25.83
205
+ #10 25.83 micromamba activate base
206
+ #10 25.83
207
+ #10 25.83 Or to execute a single command in this environment, use:
208
+ #10 25.83
209
+ #10 25.83 micromamba run -n base mycommand
210
+ #10 25.83
211
+ #10 25.87 Collect information..
212
+ #10 25.87 Cleaning index cache..
213
+ #10 25.92 Cleaning lock files..
214
+ #10 25.92 Package file Size
215
+ #10 25.92 ───────────────────────────────────────────────────────────────
216
+ #10 25.92 /opt/conda/pkgs
217
+ #10 25.92 ───────────────────────────────────────────────────────────────
218
+ #10 25.92
219
+ #10 25.92 _openmp_mutex-4.5-20_gnu.conda 29kB
220
+ #10 25.92 anarci-2024.05.21-pyhdfd78af_0.tar.bz2 1MB
221
+ #10 25.92 biopython-1.85-py312h4c3975b_2.conda 3MB
222
+ #10 25.92 bzip2-1.0.8-hda65f42_9.conda 260kB
223
+ #10 25.92 ca-certificates-2026.4.22-hbd8a1cb_0.conda 131kB
224
+ #10 25.92 cuda-nvrtc-12.9.86-hecca717_1.conda 67MB
225
+ #10 25.92 cuda-version-12.9-h4f385c5_3.conda 22kB
226
+ #10 25.92 gsl-2.7-he838d99_0.tar.bz2 3MB
227
+ #10 25.92 hmmer-3.4-hb6cb901_4.tar.bz2 12MB
228
+ #10 25.92 ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda 728kB
229
+ #10 25.92 legacy-cgi-2.6.4-pyhcf101f3_0.conda 20kB
230
+ #10 25.92 libblas-3.11.0-7_h4a7cf45_openblas.conda 19kB
231
+ #10 25.92 libcblas-3.11.0-7_h0358290_openblas.conda 19kB
232
+ #10 25.92 libcufft-11.4.1.4-hecca717_1.conda 162MB
233
+ #10 25.92 libexpat-2.8.0-hecca717_0.conda 77kB
234
+ #10 25.92 libffi-3.4.6-h2dba641_1.conda 57kB
235
+ #10 25.92 libgcc-15.2.0-he0feb66_19.conda 1MB
236
+ #10 25.92 libgcc-ng-15.2.0-h69a702a_19.conda 28kB
237
+ #10 25.92 libgfortran-15.2.0-h69a702a_19.conda 28kB
238
+ #10 25.92 libgfortran-ng-15.2.0-h69a702a_19.conda 28kB
239
+ #10 25.92 libgfortran5-15.2.0-h68bc16d_19.conda 2MB
240
+ #10 25.92 libgomp-15.2.0-he0feb66_19.conda 604kB
241
+ #10 25.92 liblapack-3.11.0-7_h47877c9_openblas.conda 19kB
242
+ #10 25.92 liblzma-5.8.3-hb03c661_0.conda 113kB
243
+ #10 25.92 libnsl-2.0.1-hb9d3cd8_1.conda 34kB
244
+ #10 25.92 libopenblas-0.3.33-pthreads_h94d23a6_0.conda 6MB
245
+ #10 25.92 libsqlite-3.53.1-h0c1763c_0.conda 955kB
246
+ #10 25.92 libstdcxx-15.2.0-h934c35e_19.conda 6MB
247
+ #10 25.92 libstdcxx-ng-15.2.0-hdf11a46_19.conda 28kB
248
+ #10 25.92 libuuid-2.42.1-h5347b49_0.conda 40kB
249
+ #10 25.92 libxcrypt-4.4.36-hd590300_1.conda 100kB
250
+ #10 25.92 libzlib-1.3.2-h25fd6f3_2.conda 64kB
251
+ #10 25.92 mpi-1.0-openmpi.tar.bz2 4kB
252
+ #10 25.92 ncurses-6.6-hdb14827_0.conda 919kB
253
+ #10 25.92 numpy-2.4.3-py312h33ff503_0.conda 9MB
254
+ #10 25.92 ocl-icd-2.3.3-hb9d3cd8_0.conda 107kB
255
+ #10 25.92 ocl-icd-system-1.0.0-1.tar.bz2 4kB
256
+ #10 25.92 opencl-headers-2025.06.13-hecca717_0.conda 56kB
257
+ #10 25.92 openmm-8.3.1-py312h50c43f0_0.conda 13MB
258
+ #10 25.92 openmpi-4.1.6-hc5af2df_101.conda 4MB
259
+ #10 25.92 openssl-3.6.2-h35e630c_0.conda 3MB
260
+ #10 25.92 packaging-26.2-pyhc364b38_0.conda 92kB
261
+ #10 25.92 pdbfixer-1.12-pyhd8ed1ab_1.conda 546kB
262
+ #10 25.92 pip-26.1.1-pyh8b19718_0.conda 1MB
263
+ #10 25.92 python-3.12.10-h9e4cc4f_0_cpython.conda 31MB
264
+ #10 25.92 python_abi-3.12-8_cp312.conda 7kB
265
+ #10 25.92 readline-8.3-h853b02a_0.conda 345kB
266
+ #10 25.92 scipy-1.17.1-py312h54fa4ab_0.conda 17MB
267
+ #10 25.92 setuptools-82.0.1-pyh332efcf_0.conda 640kB
268
+ #10 25.92 tk-8.6.13-noxft_h366c992_103.conda 3MB
269
+ #10 25.92 tzdata-2025c-hc9c84f9_1.conda 119kB
270
+ #10 25.92 wheel-0.47.0-pyhd8ed1ab_0.conda 33kB
271
+ #10 25.92 zlib-1.3.2-h25fd6f3_2.conda 96kB
272
+ #10 25.92 zstd-1.5.7-hb78ec9c_6.conda 601kB
273
+ #10 25.92
274
+ #10 25.92 /root/.mamba/pkgs
275
+ #10 25.92 ───────────────────────────────────────────────────────────────
276
+ #10 25.92
277
+ #10 25.92
278
+ #10 25.92
279
+ #10 25.92 ───────────────────────────────────────────────────────────────
280
+ #10 25.92
281
+ #10 25.92 Total size: 353MB
282
+ #10 25.92 Cleaning tarballs..
283
+ #10 25.97 Cleaning packages..
284
+ #10 DONE 28.5s
283
285
 
284
286
  #11 [3/7] COPY requirements.txt /tmp/requirements.txt
285
287
  #11 DONE 0.0s
286
288
 
287
289
  #12 [4/7] RUN pip install --no-cache-dir --extra-index-url https://download.pytorch.org/whl/cpu -r /tmp/requirements.txt
288
- #12 0.714 Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu
289
- #12 1.055 Collecting ImmuneBuilder==1.2 (from -r /tmp/requirements.txt (line 1))
290
- #12 1.114 Downloading ImmuneBuilder-1.2-py3-none-any.whl.metadata (7.7 kB)
291
- #12 1.373 Collecting torch==2.7.0 (from -r /tmp/requirements.txt (line 2))
292
- #12 1.480 Downloading torch-2.7.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (27 kB)
293
- #12 1.484 Requirement already satisfied: biopython==1.85 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 3)) (1.85)
294
- #12 1.485 Requirement already satisfied: openmm==8.3.1 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 4)) (8.3.1)
295
- #12 1.485 Requirement already satisfied: pdbfixer==1.12.0 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 5)) (1.12.0)
296
- #12 1.486 Requirement already satisfied: numpy in /opt/conda/lib/python3.12/site-packages (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1)) (2.4.3)
297
- #12 1.486 Requirement already satisfied: scipy>=1.6 in /opt/conda/lib/python3.12/site-packages (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1)) (1.17.1)
298
- #12 1.544 Collecting einops>=0.3 (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
299
- #12 1.561 Downloading einops-0.8.2-py3-none-any.whl.metadata (13 kB)
300
- #12 1.661 Collecting requests (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
301
- #12 1.676 Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB)
302
- #12 1.816 Collecting filelock (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
303
- #12 1.831 Downloading filelock-3.29.0-py3-none-any.whl.metadata (2.0 kB)
304
- #12 1.960 Collecting typing-extensions>=4.10.0 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
305
- #12 1.972 Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
306
- #12 1.975 Requirement already satisfied: setuptools in /opt/conda/lib/python3.12/site-packages (from torch==2.7.0->-r /tmp/requirements.txt (line 2)) (82.0.1)
307
- #12 2.075 Collecting sympy>=1.13.3 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
308
- #12 2.090 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)
309
- #12 2.290 Collecting networkx (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
310
- #12 2.305 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)
311
- #12 2.421 Collecting jinja2 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
312
- #12 2.432 Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
313
- #12 2.634 Collecting fsspec (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
314
- #12 2.650 Downloading fsspec-2026.4.0-py3-none-any.whl.metadata (10 kB)
315
- #12 2.800 Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch==2.7.0->-r /tmp/requirements.txt (line 2))
316
- #12 2.814 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
317
- #12 2.960 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.7.0->-r /tmp/requirements.txt (line 2))
318
- #12 2.972 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
319
- #12 3.124 Collecting charset_normalizer<4,>=2 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
320
- #12 3.140 Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)
321
- #12 3.241 Collecting idna<4,>=2.5 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
322
- #12 3.256 Downloading idna-3.13-py3-none-any.whl.metadata (8.0 kB)
323
- #12 3.334 Collecting urllib3<3,>=1.26 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
324
- #12 3.349 Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)
325
- #12 3.440 Collecting certifi>=2023.5.7 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
326
- #12 3.458 Downloading certifi-2026.4.22-py3-none-any.whl.metadata (2.5 kB)
327
- #12 3.483 Downloading ImmuneBuilder-1.2-py3-none-any.whl (32 kB)
328
- #12 3.508 Downloading torch-2.7.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl (175.8 MB)
329
- #12 4.118 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 175.8/175.8 MB 306.2 MB/s 0:00:00
330
- #12 4.136 Downloading einops-0.8.2-py3-none-any.whl (65 kB)
331
- #12 4.152 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB)
332
- #12 4.299 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 51.2 MB/s 0:00:00
333
- #12 4.314 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
334
- #12 4.316 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 822.7 MB/s 0:00:00
335
- #12 4.329 Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
336
- #12 4.344 Downloading filelock-3.29.0-py3-none-any.whl (39 kB)
337
- #12 4.359 Downloading fsspec-2026.4.0-py3-none-any.whl (203 kB)
338
- #12 4.372 Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
339
- #12 4.385 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
340
- #12 4.402 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB)
341
- #12 4.409 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 401.3 MB/s 0:00:00
342
- #12 4.424 Downloading requests-2.33.1-py3-none-any.whl (64 kB)
343
- #12 4.440 Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)
344
- #12 4.455 Downloading idna-3.13-py3-none-any.whl (68 kB)
345
- #12 4.470 Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)
346
- #12 4.485 Downloading certifi-2026.4.22-py3-none-any.whl (135 kB)
347
- #12 4.801 Installing collected packages: mpmath, urllib3, typing-extensions, sympy, networkx, MarkupSafe, idna, fsspec, filelock, einops, charset_normalizer, certifi, requests, jinja2, torch, ImmuneBuilder
348
- #12 20.07
349
- #12 20.07 Successfully installed ImmuneBuilder-1.2 MarkupSafe-3.0.3 certifi-2026.4.22 charset_normalizer-3.4.7 einops-0.8.2 filelock-3.29.0 fsspec-2026.4.0 idna-3.13 jinja2-3.1.6 mpmath-1.3.0 networkx-3.6.1 requests-2.33.1 sympy-1.14.0 torch-2.7.0+cpu typing-extensions-4.15.0 urllib3-2.7.0
350
- #12 20.07 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
351
- #12 DONE 21.7s
290
+ #12 0.736 Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu
291
+ #12 1.082 Collecting ImmuneBuilder==1.2 (from -r /tmp/requirements.txt (line 1))
292
+ #12 1.105 Downloading ImmuneBuilder-1.2-py3-none-any.whl.metadata (7.7 kB)
293
+ #12 1.378 Collecting torch==2.7.0 (from -r /tmp/requirements.txt (line 2))
294
+ #12 1.435 Downloading torch-2.7.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (27 kB)
295
+ #12 1.439 Requirement already satisfied: biopython==1.85 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 3)) (1.85)
296
+ #12 1.439 Requirement already satisfied: openmm==8.3.1 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 4)) (8.3.1)
297
+ #12 1.440 Requirement already satisfied: pdbfixer==1.12.0 in /opt/conda/lib/python3.12/site-packages (from -r /tmp/requirements.txt (line 5)) (1.12.0)
298
+ #12 1.441 Requirement already satisfied: numpy in /opt/conda/lib/python3.12/site-packages (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1)) (2.4.3)
299
+ #12 1.441 Requirement already satisfied: scipy>=1.6 in /opt/conda/lib/python3.12/site-packages (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1)) (1.17.1)
300
+ #12 1.531 Collecting einops>=0.3 (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
301
+ #12 1.533 Downloading einops-0.8.2-py3-none-any.whl.metadata (13 kB)
302
+ #12 1.669 Collecting requests (from ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
303
+ #12 1.672 Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)
304
+ #12 1.866 Collecting filelock (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
305
+ #12 1.869 Downloading filelock-3.29.0-py3-none-any.whl.metadata (2.0 kB)
306
+ #12 1.992 Collecting typing-extensions>=4.10.0 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
307
+ #12 1.996 Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
308
+ #12 1.999 Requirement already satisfied: setuptools in /opt/conda/lib/python3.12/site-packages (from torch==2.7.0->-r /tmp/requirements.txt (line 2)) (82.0.1)
309
+ #12 2.339 Collecting sympy>=1.13.3 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
310
+ #12 2.342 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)
311
+ #12 2.468 Collecting networkx (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
312
+ #12 2.471 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)
313
+ #12 2.587 Collecting jinja2 (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
314
+ #12 2.591 Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
315
+ #12 2.940 Collecting fsspec (from torch==2.7.0->-r /tmp/requirements.txt (line 2))
316
+ #12 2.943 Downloading fsspec-2026.4.0-py3-none-any.whl.metadata (10 kB)
317
+ #12 3.309 Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch==2.7.0->-r /tmp/requirements.txt (line 2))
318
+ #12 3.312 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
319
+ #12 3.526 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.7.0->-r /tmp/requirements.txt (line 2))
320
+ #12 3.530 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
321
+ #12 3.709 Collecting charset_normalizer<4,>=2 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
322
+ #12 3.712 Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)
323
+ #12 3.968 Collecting idna<4,>=2.5 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
324
+ #12 3.971 Downloading idna-3.15-py3-none-any.whl.metadata (7.7 kB)
325
+ #12 4.095 Collecting urllib3<3,>=1.26 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
326
+ #12 4.098 Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)
327
+ #12 4.212 Collecting certifi>=2023.5.7 (from requests->ImmuneBuilder==1.2->-r /tmp/requirements.txt (line 1))
328
+ #12 4.214 Downloading certifi-2026.4.22-py3-none-any.whl.metadata (2.5 kB)
329
+ #12 4.224 Downloading ImmuneBuilder-1.2-py3-none-any.whl (32 kB)
330
+ #12 4.233 Downloading torch-2.7.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl (175.8 MB)
331
+ #12 4.825 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 175.8/175.8 MB 299.7 MB/s 0:00:00
332
+ #12 4.827 Downloading einops-0.8.2-py3-none-any.whl (65 kB)
333
+ #12 4.830 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB)
334
+ #12 4.843 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 577.8 MB/s 0:00:00
335
+ #12 4.846 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
336
+ #12 4.848 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 741.9 MB/s 0:00:00
337
+ #12 4.852 Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
338
+ #12 4.855 Downloading filelock-3.29.0-py3-none-any.whl (39 kB)
339
+ #12 4.857 Downloading fsspec-2026.4.0-py3-none-any.whl (203 kB)
340
+ #12 4.861 Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
341
+ #12 4.866 Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
342
+ #12 4.869 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB)
343
+ #12 4.873 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 713.3 MB/s 0:00:00
344
+ #12 4.876 Downloading requests-2.34.2-py3-none-any.whl (73 kB)
345
+ #12 4.878 Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)
346
+ #12 4.881 Downloading idna-3.15-py3-none-any.whl (72 kB)
347
+ #12 4.883 Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)
348
+ #12 4.885 Downloading certifi-2026.4.22-py3-none-any.whl (135 kB)
349
+ #12 5.195 Installing collected packages: mpmath, urllib3, typing-extensions, sympy, networkx, MarkupSafe, idna, fsspec, filelock, einops, charset_normalizer, certifi, requests, jinja2, torch, ImmuneBuilder
350
+ #12 20.17
351
+ #12 20.17 Successfully installed ImmuneBuilder-1.2 MarkupSafe-3.0.3 certifi-2026.4.22 charset_normalizer-3.4.7 einops-0.8.2 filelock-3.29.0 fsspec-2026.4.0 idna-3.15 jinja2-3.1.6 mpmath-1.3.0 networkx-3.6.1 requests-2.34.2 sympy-1.14.0 torch-2.7.0+cpu typing-extensions-4.15.0 urllib3-2.7.0
352
+ #12 20.17 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
353
+ #12 DONE 21.8s
352
354
 
353
355
  #13 [5/7] RUN python -c "from ImmuneBuilder import ABodyBuilder2, NanoBodyBuilder2; ABodyBuilder2(); NanoBodyBuilder2()" && chmod -R a+rX /opt/conda/lib/python3.12/site-packages/ImmuneBuilder/trained_model
354
- #13 1.802 Downloading weights for antibody_model_1...
355
- #13 6.800 Downloading weights for antibody_model_2...
356
- #13 17.28 Downloading weights for antibody_model_3...
357
- #13 28.31 Downloading weights for antibody_model_4...
358
- #13 38.18 Downloading weights for nanobody_model_1...
359
- #13 42.91 Downloading weights for nanobody_model_2...
360
- #13 53.21 Downloading weights for nanobody_model_3...
361
- #13 64.61 Downloading weights for nanobody_model_4...
362
- #13 DONE 76.2s
356
+ #13 1.784 Downloading weights for antibody_model_1...
357
+ #13 37.49 Downloading weights for antibody_model_2...
358
+ #13 137.3 Downloading weights for antibody_model_3...
359
+ #13 299.1 Downloading weights for antibody_model_4...
360
+ #13 420.8 Downloading weights for nanobody_model_1...
361
+ #13 517.4 Downloading weights for nanobody_model_2...
362
+ #13 800.4 Downloading weights for nanobody_model_3...
363
+ #13 975.8 Downloading weights for nanobody_model_4...
364
+ #13 DONE 1050.9s
363
365
 
364
366
  #14 [6/7] WORKDIR /app
365
367
  #14 DONE 0.0s
@@ -370,28 +372,28 @@
370
372
  #16 exporting to image
371
373
  #16 exporting layers
372
374
  #16 exporting layers 6.8s done
373
- #16 writing image sha256:a834563f25d988f3fbbbd9d1fefe5d3cbaf73e1564c14115ff841332bb902312 done
374
- #16 naming to containers.pl-open.science/milaboratories/pl-containers:local-image.5af0c210477b done
375
+ #16 writing image sha256:b5ab99a6233488f58b0700198b79ba9dcd503f27aadc54a2608ba6ee89b28f01 done
376
+ #16 naming to containers.pl-open.science/milaboratories/pl-containers:local-image.c4b9b9c11580 done
375
377
  #16 DONE 6.8s
376
378
  info: Docker image is built:
377
- tag: 'containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9'
379
+ tag: 'containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334'
378
380
  location file: '/home/runner/work/3d-structure-prediction/3d-structure-prediction/software/dist/artifacts/py-docker/docker_x64.json'
379
381
  info: Building package archives...
380
382
  info: Building software package 'py-archive' for platform 'linux-x64'...
381
383
  info: software archive is built:
382
- archive: '/home/runner/work/3d-structure-prediction/3d-structure-prediction/software/pkg-platforma-open-milaboratories.3d-structure-prediction.software-py-archive-1.0.4.tgz'
384
+ archive: '/home/runner/work/3d-structure-prediction/3d-structure-prediction/software/pkg-platforma-open-milaboratories.3d-structure-prediction.software-py-archive-1.0.6.tgz'
383
385
  location file: '/home/runner/work/3d-structure-prediction/3d-structure-prediction/software/dist/artifacts/py-archive/archive.json'
384
386
  info: Rendering entrypoint descriptors...
385
387
  info: Writing entrypoint descriptor to '/home/runner/work/3d-structure-prediction/3d-structure-prediction/software/dist/tengo/software/immunebuilder-predict.sw.json'
386
388
  info: Publishing docker images...
387
- info: Publishing docker image 'containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9' using alternative tag 'quay.io/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9'
389
+ info: Publishing docker image 'containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334' using alternative tag 'quay.io/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334'
388
390
  The push refers to repository [quay.io/milaboratories/pl-containers]
389
- 28f8c8c39c93: Preparing
390
- 7ea7fc8a1ce8: Preparing
391
- f5e39a5dd8bb: Preparing
392
- 8278dde3467a: Preparing
393
- 33f0d165b456: Preparing
394
- 5b434b4ddcbc: Preparing
391
+ d46418c456c6: Preparing
392
+ 6e624e7b02d8: Preparing
393
+ 666493f784b4: Preparing
394
+ 4afd30e83b88: Preparing
395
+ 3e3c56cad837: Preparing
396
+ 8fc5584786d3: Preparing
395
397
  cc176b242a57: Preparing
396
398
  0f6514ac2db1: Preparing
397
399
  271be3d5c5cf: Preparing
@@ -404,33 +406,33 @@ f8663d674596: Preparing
404
406
  c018a1aad765: Preparing
405
407
  438ed031efcc: Preparing
406
408
  8e2ab394fabf: Preparing
409
+ 8fc5584786d3: Waiting
410
+ cc176b242a57: Waiting
411
+ 0f6514ac2db1: Waiting
412
+ 271be3d5c5cf: Waiting
413
+ f9926f359887: Waiting
407
414
  5f70bf18a086: Waiting
408
415
  e3b1db6d44c6: Waiting
409
416
  a818d59f8c76: Waiting
410
- 5b434b4ddcbc: Waiting
411
417
  f8663d674596: Waiting
412
418
  c018a1aad765: Waiting
413
- cc176b242a57: Waiting
414
419
  438ed031efcc: Waiting
415
- 0f6514ac2db1: Waiting
416
420
  8e2ab394fabf: Waiting
417
- f9926f359887: Waiting
418
- 271be3d5c5cf: Waiting
419
- 28f8c8c39c93: Pushed
420
- 33f0d165b456: Pushed
421
- 7ea7fc8a1ce8: Pushed
421
+ d46418c456c6: Pushed
422
+ 3e3c56cad837: Pushed
423
+ 6e624e7b02d8: Pushed
422
424
  cc176b242a57: Layer already exists
423
425
  0f6514ac2db1: Layer already exists
424
- 271be3d5c5cf: Layer already exists
425
426
  f9926f359887: Layer already exists
427
+ 271be3d5c5cf: Layer already exists
426
428
  5f70bf18a086: Layer already exists
427
429
  e3b1db6d44c6: Layer already exists
428
- a818d59f8c76: Layer already exists
429
430
  f8663d674596: Layer already exists
431
+ a818d59f8c76: Layer already exists
430
432
  c018a1aad765: Layer already exists
431
433
  438ed031efcc: Layer already exists
432
434
  8e2ab394fabf: Layer already exists
433
- 8278dde3467a: Pushed
434
- 5b434b4ddcbc: Pushed
435
- f5e39a5dd8bb: Pushed
436
- platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9: digest: sha256:fd8a4cbd41b953004faa0fc70c9ad2ac92e0a41db2ace8a3eedc94c3f84f6780 size: 4073
435
+ 4afd30e83b88: Pushed
436
+ 8fc5584786d3: Pushed
437
+ 666493f784b4: Pushed
438
+ platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334: digest: sha256:91be83929f6853320cefc38f5491e18b30bef25730e73006990e1496520efb46 size: 4073
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @platforma-open/milaboratories.3d-structure-prediction.software
2
2
 
3
+ ## 1.0.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 49b6d30: Update workflow version
8
+
9
+ ## 1.0.5
10
+
11
+ ### Patch Changes
12
+
13
+ - 4438d9d: Clarify NanoBodyBuilder2 usage in the settings panel: relabel the light chain dropdown as optional with a tooltip, and expand the mode-info alert to note that NanoBodyBuilder2 is camelid-VHH-trained, so for conventional heavy-only inputs (e.g. human bulk IGH-only) the produced structure has VHH-biased framework geometry.
14
+
15
+ Drop the user-facing CPU and memory inputs (per-batch resources are fixed). Each prediction batch now requests 4 CPU cores and 4 GiB of memory.
16
+
17
+ Stop writing a wall-clock `prediction-date` REMARK into emitted PDBs. The timestamp made every PDB byte-different on every run, breaking the platforma backend's content-addressed caching — downstream nodes that consumed merged PDB ResourceMaps hit `CIDConflictError`. The other provenance REMARKs (immunebuilder version, torch seed, block version, numbering scheme) plus the seeded ensemble fully determine the prediction.
18
+
19
+ Make the saved Python wrapper log byte-stable for identical inputs: drop the per-line UTC timestamp prefix and remove every wall-clock duration printed by `_log` (`predictor ready in Xs`, `predicted in Xs`, `elapsed=Xs`). The exec template saves stdout via `saveStdoutStream()` into the regular file output set, so its content hash flows into the resource CID; timestamped logs would re-introduce the same `CIDConflictError` failure mode as the PDB date.
20
+
21
+ Set `stepCache: 30 * times.minute` on the `processColumn` call so per-batch outputs stay reachable for the dedup/recovery path across project re-renders, matching the convention used by mixcr-clonotyping and miltenyi-tcr-bcr-clonotyping.
22
+
23
+ Add the species selector (spec R44): `human | mouse | camelid | rat | rabbit | other`, default `human`. Species is included in the block subtitle (R56) alongside the engine. The mode-info banner now splits into two cases: when the species is `camelid` and the light chain is unset we treat it as a true VHH input (informational); for any other species combined with heavy-only input we surface a warning that NanoBodyBuilder2's framework geometry is biased away from conventional VH. A separate warning fires for ABodyBuilder2 runs on species outside the training distribution (anything other than human or mouse). Species is held in `BlockData` only — the workflow does not consume it yet, so switching species does not invalidate cached predictions. Upstream clonotyping blocks do not propagate species through PColumn specs today, so the selector is user-supplied; once upstream wires `pl7.app/species` onto the clonotype-axis domain, this block can pre-fill the default.
24
+
3
25
  ## 1.0.4
4
26
 
5
27
  ### Patch Changes
@@ -1 +1 @@
1
- {"type":"python","platform":"linux-x64","registryURL":"https://bin.pl-open.science/","registryName":"platforma-open","remoteArtifactLocation":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.4.tgz","uploadPath":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.4.tgz"}
1
+ {"type":"python","platform":"linux-x64","registryURL":"https://bin.pl-open.science/","registryName":"platforma-open","remoteArtifactLocation":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.6.tgz","uploadPath":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.6.tgz"}
@@ -1 +1 @@
1
- {"type":"docker","platform":"linux-x64","remoteArtifactLocation":"containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9","entrypoint":["/usr/local/bin/_entrypoint.sh"]}
1
+ {"type":"docker","platform":"linux-x64","remoteArtifactLocation":"containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334","entrypoint":["/usr/local/bin/_entrypoint.sh"]}
@@ -1 +1 @@
1
- {"name":"@platforma-open/milaboratories.3d-structure-prediction.software:immunebuilder-predict","docker":{"tag":"containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.a834563f25d9","entrypoint":["/usr/local/bin/_entrypoint.sh"],"cmd":["python","/app/run_immunebuilder.py"],"pkg":"/app"},"binary":{"type":"python","registry":"platforma-open","package":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.4.tgz","cmd":["python","{pkg}/run_immunebuilder.py"],"envVars":[],"runEnv":{"name":"@platforma-open/milaboratories.runenv-python-3:3.12.10-atls","type":"python","registry":"platforma-open","package":"software/platforma-open/milaboratories.runenv-python-3.12.10-atls/main/1.2.7-{os}-{arch}.tgz","python-version":"3.12.10","envVars":[],"binDir":"bin"},"toolset":"pip","dependencies":{"requirements":"requirements.txt"}}}
1
+ {"name":"@platforma-open/milaboratories.3d-structure-prediction.software:immunebuilder-predict","docker":{"tag":"containers.pl-open.science/milaboratories/pl-containers:platforma-open.milaboratories.3d-structure-prediction.software.py-docker.b5ab99a62334","entrypoint":["/usr/local/bin/_entrypoint.sh"],"cmd":["python","/app/run_immunebuilder.py"],"pkg":"/app"},"binary":{"type":"python","registry":"platforma-open","package":"software/platforma-open/milaboratories.3d-structure-prediction.software/py-archive/1.0.6.tgz","cmd":["python","{pkg}/run_immunebuilder.py"],"envVars":[],"runEnv":{"name":"@platforma-open/milaboratories.runenv-python-3:3.12.10-atls","type":"python","registry":"platforma-open","package":"software/platforma-open/milaboratories.runenv-python-3.12.10-atls/main/1.2.7-{os}-{arch}.tgz","python-version":"3.12.10","envVars":[],"binDir":"bin"},"toolset":"pip","dependencies":{"requirements":"requirements.txt"}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.3d-structure-prediction.software",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "type": "module",
5
5
  "description": "Block Software",
6
6
  "block-software": {
@@ -3,9 +3,14 @@
3
3
  ImmuneBuilder writes a standard PDB. Per spec R26/R28/R29 we need to:
4
4
  - Clamp per-atom B-factor to [0.00, 99.99] to fit PDB `%6.2f` precision.
5
5
  - Inject a TITLE line identifying the predictor.
6
- - Inject REMARK 99 PROVENANCE block (version, seed, block version, ISO date).
6
+ - Inject REMARK 99 PROVENANCE block (version, seed, block version).
7
7
  - Inject REMARK 99 CDR* records with IMGT CDR ranges.
8
8
 
9
+ PDB content must be byte-stable for identical inputs so the platforma
10
+ backend can cache and reuse downstream results — a wall-clock prediction
11
+ timestamp would break every run's CID, so we omit it. The seed + version
12
+ fields plus the input sequences are sufficient to reproduce the prediction.
13
+
9
14
  The cleanest approach is: let ImmuneBuilder write a temp PDB, then post-
10
15
  process the lines — injecting REMARKs after TITLE and clamping B-factors on
11
16
  ATOM/HETATM lines in one pass.
@@ -13,7 +18,6 @@ ATOM/HETATM lines in one pass.
13
18
 
14
19
  from __future__ import annotations
15
20
 
16
- from datetime import datetime, timezone
17
21
  from pathlib import Path
18
22
 
19
23
  from numbering import IMGT_CDR_RANGES, cdr_ranges_in_pdb_notation
@@ -22,10 +26,6 @@ B_FACTOR_MIN = 0.00
22
26
  B_FACTOR_MAX = 99.99
23
27
 
24
28
 
25
- def _iso_now() -> str:
26
- return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
27
-
28
-
29
29
  def _clamp_b_factor(line: str) -> tuple[str, bool]:
30
30
  """Clamp B-factor column on ATOM/HETATM lines. Returns (new_line, clamped)."""
31
31
  if not (line.startswith("ATOM") or line.startswith("HETATM")):
@@ -67,7 +67,6 @@ def _provenance_remark_lines(
67
67
  f"REMARK 99 PROVENANCE immunebuilder-version={immunebuilder_version}",
68
68
  f"REMARK 99 PROVENANCE torch-seed={torch_seed}",
69
69
  f"REMARK 99 PROVENANCE block-version={block_version}",
70
- f"REMARK 99 PROVENANCE prediction-date={_iso_now()}",
71
70
  f"REMARK 99 PROVENANCE numbering-scheme={numbering_scheme}",
72
71
  ]
73
72
 
@@ -51,22 +51,21 @@ import hashlib
51
51
  import json
52
52
  import os
53
53
  import sys
54
- import time
55
54
  import traceback
56
55
  from dataclasses import asdict, dataclass, field
57
- from datetime import datetime, timezone
58
56
  from pathlib import Path
59
57
 
60
58
 
61
59
  def _log(message: str) -> None:
62
60
  """Line-buffered log entry to stderr.
63
61
 
64
- Workflow uses `printErrStreamToStdout` + `saveStdoutStream`; the resulting
65
- log handle is consumed by `PlLogView` in the UI. Every line is timestamped
66
- so users can track progress across long-running batches.
62
+ The exec template saves the stdout stream as a regular file output, so
63
+ the saved-file blob's content hash flows into the resource CID. Wall
64
+ clock timestamps and elapsed-time durations would make the saved log
65
+ byte-different on every run and break the platforma backend's
66
+ content-addressed caching. Keep log lines fully determined by inputs.
67
67
  """
68
- ts = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
69
- print(f"[{ts}] {message}", file=sys.stderr, flush=True)
68
+ print(message, file=sys.stderr, flush=True)
70
69
 
71
70
  from numbering import cdrh3_length as imgt_cdrh3_length
72
71
  from numbering import extract_numbered_residues, vhh_hallmarks_present
@@ -407,9 +406,8 @@ def process_batch(
407
406
  _set_seed(seed)
408
407
  if rows:
409
408
  _log(f"loading {mode} ensemble (4 models)")
410
- predictor_t0 = time.time()
411
409
  predictor = _load_predictor(mode)
412
- _log(f"predictor ready in {time.time() - predictor_t0:.1f}s")
410
+ _log("predictor ready")
413
411
  else:
414
412
  predictor = None
415
413
 
@@ -422,7 +420,6 @@ def process_batch(
422
420
  fail_count = 0
423
421
  success_count = 0
424
422
  cache_hits = 0
425
- run_t0 = time.time()
426
423
 
427
424
  for row_idx, row in enumerate(rows):
428
425
  key = row.get(key_col, "")
@@ -455,12 +452,10 @@ def process_batch(
455
452
  antibody = prediction_cache.get(cache_key)
456
453
  if antibody is None:
457
454
  try:
458
- pred_t0 = time.time()
459
455
  antibody = _predict_one(predictor, mode, sanitized.vh, sanitized.vl)
460
- pred_dt = time.time() - pred_t0
461
456
  prediction_cache[cache_key] = antibody
462
457
  if (row_idx + 1) % log_every == 0 or row_idx == 0:
463
- _log(f"{prefix} predicted in {pred_dt:.1f}s")
458
+ _log(f"{prefix} predicted")
464
459
  except Exception as exc: # noqa: BLE001
465
460
  fail_count += 1
466
461
  _log(f"{prefix} FAIL ImmuneBuilder {type(exc).__name__}: {exc}")
@@ -563,11 +558,10 @@ def process_batch(
563
558
  with open(summary_json, "w") as f:
564
559
  json.dump(summary, f)
565
560
 
566
- elapsed = time.time() - run_t0 if rows else 0.0
567
561
  _log(
568
562
  f"done total={summary['totalRows']} succeeded={summary['succeeded']} "
569
563
  f"failed={summary['failed']} confident={summary['confidentCount']} "
570
- f"cache_hits={cache_hits} elapsed={elapsed:.1f}s"
564
+ f"cache_hits={cache_hits}"
571
565
  )
572
566
  if summary["byFailureReason"]:
573
567
  for reason, n_fail in sorted(