boltz-vsynthes 1.0.34__tar.gz → 1.0.35__tar.gz

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.
Files changed (123) hide show
  1. {boltz_vsynthes-1.0.34/src/boltz_vsynthes.egg-info → boltz_vsynthes-1.0.35}/PKG-INFO +1 -1
  2. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/pyproject.toml +1 -1
  3. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/write/writer.py +66 -29
  4. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35/src/boltz_vsynthes.egg-info}/PKG-INFO +1 -1
  5. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/LICENSE +0 -0
  6. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/README.md +0 -0
  7. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/setup.cfg +0 -0
  8. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/__init__.py +0 -0
  9. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/__init__.py +0 -0
  10. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/const.py +0 -0
  11. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/crop/__init__.py +0 -0
  12. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/crop/affinity.py +0 -0
  13. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/crop/boltz.py +0 -0
  14. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/crop/cropper.py +0 -0
  15. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/feature/__init__.py +0 -0
  16. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/feature/featurizer.py +0 -0
  17. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/feature/featurizerv2.py +0 -0
  18. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/feature/symmetry.py +0 -0
  19. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/__init__.py +0 -0
  20. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/__init__.py +0 -0
  21. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/date.py +0 -0
  22. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/filter.py +0 -0
  23. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/max_residues.py +0 -0
  24. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/resolution.py +0 -0
  25. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/size.py +0 -0
  26. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/dynamic/subset.py +0 -0
  27. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/static/__init__.py +0 -0
  28. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/static/filter.py +0 -0
  29. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/static/ligand.py +0 -0
  30. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/filter/static/polymer.py +0 -0
  31. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/module/__init__.py +0 -0
  32. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/module/inference.py +0 -0
  33. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/module/inferencev2.py +0 -0
  34. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/module/training.py +0 -0
  35. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/module/trainingv2.py +0 -0
  36. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/mol.py +0 -0
  37. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/msa/__init__.py +0 -0
  38. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/msa/mmseqs2.py +0 -0
  39. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/pad.py +0 -0
  40. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/__init__.py +0 -0
  41. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/a3m.py +0 -0
  42. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/csv.py +0 -0
  43. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/fasta.py +0 -0
  44. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/mmcif.py +0 -0
  45. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/mmcif_with_constraints.py +0 -0
  46. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/pdb.py +0 -0
  47. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/pdb_download.py +0 -0
  48. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/schema.py +0 -0
  49. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/sdf.py +0 -0
  50. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/parse/yaml.py +0 -0
  51. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/sample/__init__.py +0 -0
  52. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/sample/cluster.py +0 -0
  53. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/sample/distillation.py +0 -0
  54. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/sample/random.py +0 -0
  55. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/sample/sampler.py +0 -0
  56. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/tokenize/__init__.py +0 -0
  57. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/tokenize/boltz.py +0 -0
  58. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/tokenize/boltz2.py +0 -0
  59. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/tokenize/tokenizer.py +0 -0
  60. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/types.py +0 -0
  61. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/write/__init__.py +0 -0
  62. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/write/mmcif.py +0 -0
  63. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/write/pdb.py +0 -0
  64. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/data/write/utils.py +0 -0
  65. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/main.py +0 -0
  66. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/__init__.py +0 -0
  67. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/__init__.py +0 -0
  68. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/attention.py +0 -0
  69. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/attentionv2.py +0 -0
  70. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/confidence_utils.py +0 -0
  71. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/dropout.py +0 -0
  72. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/initialize.py +0 -0
  73. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/outer_product_mean.py +0 -0
  74. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/pair_averaging.py +0 -0
  75. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/pairformer.py +0 -0
  76. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/relative.py +0 -0
  77. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/transition.py +0 -0
  78. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/triangular_attention/__init__.py +0 -0
  79. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/triangular_attention/attention.py +0 -0
  80. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/triangular_attention/primitives.py +0 -0
  81. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/triangular_attention/utils.py +0 -0
  82. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/layers/triangular_mult.py +0 -0
  83. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/__init__.py +0 -0
  84. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/bfactor.py +0 -0
  85. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/confidence.py +0 -0
  86. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/confidencev2.py +0 -0
  87. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/diffusion.py +0 -0
  88. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/diffusionv2.py +0 -0
  89. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/distogram.py +0 -0
  90. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/distogramv2.py +0 -0
  91. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/loss/validation.py +0 -0
  92. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/models/__init__.py +0 -0
  93. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/models/boltz1.py +0 -0
  94. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/models/boltz2.py +0 -0
  95. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/__init__.py +0 -0
  96. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/affinity.py +0 -0
  97. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/confidence.py +0 -0
  98. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/confidence_utils.py +0 -0
  99. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/confidencev2.py +0 -0
  100. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/diffusion.py +0 -0
  101. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/diffusion_conditioning.py +0 -0
  102. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/diffusionv2.py +0 -0
  103. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/encoders.py +0 -0
  104. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/encodersv2.py +0 -0
  105. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/transformers.py +0 -0
  106. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/transformersv2.py +0 -0
  107. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/trunk.py +0 -0
  108. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/trunkv2.py +0 -0
  109. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/modules/utils.py +0 -0
  110. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/optim/__init__.py +0 -0
  111. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/optim/ema.py +0 -0
  112. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/optim/scheduler.py +0 -0
  113. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/potentials/__init__.py +0 -0
  114. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/potentials/potentials.py +0 -0
  115. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz/model/potentials/schedules.py +0 -0
  116. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz_vsynthes.egg-info/SOURCES.txt +0 -0
  117. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz_vsynthes.egg-info/dependency_links.txt +0 -0
  118. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz_vsynthes.egg-info/entry_points.txt +0 -0
  119. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz_vsynthes.egg-info/requires.txt +0 -0
  120. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/src/boltz_vsynthes.egg-info/top_level.txt +0 -0
  121. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/tests/test_kernels.py +0 -0
  122. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/tests/test_regression.py +0 -0
  123. {boltz_vsynthes-1.0.34 → boltz_vsynthes-1.0.35}/tests/test_utils.py +0 -0
@@ -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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "boltz-vsynthes"
7
- version = "1.0.34"
7
+ version = "1.0.35"
8
8
  requires-python = ">=3.10,<3.13"
9
9
  description = "Boltz for VSYNTHES"
10
10
  readme = "README.md"
@@ -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
File without changes