boltz-vsynthes 1.0.34__py3-none-any.whl → 1.0.35__py3-none-any.whl

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.
@@ -290,35 +290,72 @@ class BoltzAffinityWriter(BasePredictionWriter):
290
290
  if prediction["exception"]:
291
291
  self.failed += 1
292
292
  return
293
- # Dump affinity summary
294
- affinity_summary = {}
295
- pred_affinity_value = prediction["affinity_pred_value"]
296
- pred_affinity_probability = prediction["affinity_probability_binary"]
297
- affinity_summary = {
298
- "affinity_pred_value": pred_affinity_value.item(),
299
- "affinity_probability_binary": pred_affinity_probability.item(),
300
- }
301
- if "affinity_pred_value1" in prediction:
302
- pred_affinity_value1 = prediction["affinity_pred_value1"]
303
- pred_affinity_probability1 = prediction["affinity_probability_binary1"]
304
- pred_affinity_value2 = prediction["affinity_pred_value2"]
305
- pred_affinity_probability2 = prediction["affinity_probability_binary2"]
306
- affinity_summary["affinity_pred_value1"] = pred_affinity_value1.item()
307
- affinity_summary["affinity_probability_binary1"] = (
308
- pred_affinity_probability1.item()
309
- )
310
- affinity_summary["affinity_pred_value2"] = pred_affinity_value2.item()
311
- affinity_summary["affinity_probability_binary2"] = (
312
- pred_affinity_probability2.item()
313
- )
314
-
315
- # Save the affinity summary
316
- struct_dir = self.output_dir / batch["record"][0].id
317
- struct_dir.mkdir(exist_ok=True)
318
- path = struct_dir / f"affinity_{batch['record'][0].id}.json"
319
-
320
- with path.open("w") as f:
321
- f.write(json.dumps(affinity_summary, indent=4))
293
+
294
+ # Get the record and check if it has multiple ligands
295
+ record = batch["record"][0]
296
+ record_dir = self.output_dir / record.id
297
+
298
+ # Check if we have ligand-specific directories
299
+ ligand_dirs = [d for d in record_dir.iterdir() if d.is_dir() and d.name.startswith("LIG")]
300
+
301
+ if ligand_dirs:
302
+ # We have multiple ligands, save predictions in each ligand's directory
303
+ for ligand_dir in ligand_dirs:
304
+ # Dump affinity summary
305
+ affinity_summary = {}
306
+ pred_affinity_value = prediction["affinity_pred_value"]
307
+ pred_affinity_probability = prediction["affinity_probability_binary"]
308
+ affinity_summary = {
309
+ "affinity_pred_value": pred_affinity_value.item(),
310
+ "affinity_probability_binary": pred_affinity_probability.item(),
311
+ }
312
+ if "affinity_pred_value1" in prediction:
313
+ pred_affinity_value1 = prediction["affinity_pred_value1"]
314
+ pred_affinity_probability1 = prediction["affinity_probability_binary1"]
315
+ pred_affinity_value2 = prediction["affinity_pred_value2"]
316
+ pred_affinity_probability2 = prediction["affinity_probability_binary2"]
317
+ affinity_summary["affinity_pred_value1"] = pred_affinity_value1.item()
318
+ affinity_summary["affinity_probability_binary1"] = (
319
+ pred_affinity_probability1.item()
320
+ )
321
+ affinity_summary["affinity_pred_value2"] = pred_affinity_value2.item()
322
+ affinity_summary["affinity_probability_binary2"] = (
323
+ pred_affinity_probability2.item()
324
+ )
325
+
326
+ # Save the affinity summary in the ligand's directory
327
+ path = ligand_dir / f"affinity_{record.id}.json"
328
+ with path.open("w") as f:
329
+ f.write(json.dumps(affinity_summary, indent=4))
330
+ else:
331
+ # Single ligand case, save in record directory
332
+ # Dump affinity summary
333
+ affinity_summary = {}
334
+ pred_affinity_value = prediction["affinity_pred_value"]
335
+ pred_affinity_probability = prediction["affinity_probability_binary"]
336
+ affinity_summary = {
337
+ "affinity_pred_value": pred_affinity_value.item(),
338
+ "affinity_probability_binary": pred_affinity_probability.item(),
339
+ }
340
+ if "affinity_pred_value1" in prediction:
341
+ pred_affinity_value1 = prediction["affinity_pred_value1"]
342
+ pred_affinity_probability1 = prediction["affinity_probability_binary1"]
343
+ pred_affinity_value2 = prediction["affinity_pred_value2"]
344
+ pred_affinity_probability2 = prediction["affinity_probability_binary2"]
345
+ affinity_summary["affinity_pred_value1"] = pred_affinity_value1.item()
346
+ affinity_summary["affinity_probability_binary1"] = (
347
+ pred_affinity_probability1.item()
348
+ )
349
+ affinity_summary["affinity_pred_value2"] = pred_affinity_value2.item()
350
+ affinity_summary["affinity_probability_binary2"] = (
351
+ pred_affinity_probability2.item()
352
+ )
353
+
354
+ # Save the affinity summary
355
+ record_dir.mkdir(exist_ok=True)
356
+ path = record_dir / f"affinity_{record.id}.json"
357
+ with path.open("w") as f:
358
+ f.write(json.dumps(affinity_summary, indent=4))
322
359
 
323
360
  def on_predict_epoch_end(
324
361
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boltz-vsynthes
3
- Version: 1.0.34
3
+ Version: 1.0.35
4
4
  Summary: Boltz for VSYNTHES
5
5
  Requires-Python: <3.13,>=3.10
6
6
  Description-Content-Type: text/markdown
@@ -56,7 +56,7 @@ boltz/data/write/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
56
56
  boltz/data/write/mmcif.py,sha256=zHwe4ulietjCVz5JMzl4_bu4liqwwcUKlgr9orVVd2Q,12177
57
57
  boltz/data/write/pdb.py,sha256=P2pDpKKIJuIoPADWwei0tIakHWE-ajlGEw6BE371EcI,6235
58
58
  boltz/data/write/utils.py,sha256=2PzveM4qZ7Aadru1Qzoi2Dhit_s4LXlz4ceXpGJi4y0,539
59
- boltz/data/write/writer.py,sha256=bYxHHf6e0waO8WdAP_AmzWEEljc8lRx85HcDPR2Tjqo,12500
59
+ boltz/data/write/writer.py,sha256=Q6h6R1pU-wWJmdBnAsxjOpDwrVKjlfFKy8rTbL9_zfE,14644
60
60
  boltz/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  boltz/model/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  boltz/model/layers/attention.py,sha256=rkd5PTIoVB1kSzDnBrZfut4DoEHKHBCwuDb1p0JfSck,3782
@@ -107,9 +107,9 @@ boltz/model/optim/scheduler.py,sha256=nB4jz0CZ4pR4n08LQngExL_pNycIdYI8AXVoHPnZWQ
107
107
  boltz/model/potentials/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  boltz/model/potentials/potentials.py,sha256=vev8Vjfs-ML1hyrdv_R8DynG4wSFahJ6nzPWp7CYQqw,17507
109
109
  boltz/model/potentials/schedules.py,sha256=m7XJjfuF9uTX3bR9VisXv1rvzJjxiD8PobXRpcBBu1c,968
110
- boltz_vsynthes-1.0.34.dist-info/licenses/LICENSE,sha256=8GZ_1eZsUeG6jdqgJJxtciWzADfgLEV4LY8sKUOsJhc,1102
111
- boltz_vsynthes-1.0.34.dist-info/METADATA,sha256=h-T8W9FPQG5hynUMxYWhnJN4Ztt1XWoX4LgorJCEEYY,7171
112
- boltz_vsynthes-1.0.34.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
113
- boltz_vsynthes-1.0.34.dist-info/entry_points.txt,sha256=n5a5I35ntu9lmyr16oZgHPFY0b0YxjiixY7m7nbMTLc,41
114
- boltz_vsynthes-1.0.34.dist-info/top_level.txt,sha256=MgU3Jfb-ctWm07YGMts68PMjSh9v26D0gfG3dFRmVFA,6
115
- boltz_vsynthes-1.0.34.dist-info/RECORD,,
110
+ boltz_vsynthes-1.0.35.dist-info/licenses/LICENSE,sha256=8GZ_1eZsUeG6jdqgJJxtciWzADfgLEV4LY8sKUOsJhc,1102
111
+ boltz_vsynthes-1.0.35.dist-info/METADATA,sha256=XX9hHMNRhqMjmfhzZxJ0YtFYR9_ppHPra433DXQBxo0,7171
112
+ boltz_vsynthes-1.0.35.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
113
+ boltz_vsynthes-1.0.35.dist-info/entry_points.txt,sha256=n5a5I35ntu9lmyr16oZgHPFY0b0YxjiixY7m7nbMTLc,41
114
+ boltz_vsynthes-1.0.35.dist-info/top_level.txt,sha256=MgU3Jfb-ctWm07YGMts68PMjSh9v26D0gfG3dFRmVFA,6
115
+ boltz_vsynthes-1.0.35.dist-info/RECORD,,