boltz-vsynthes 1.0.39__tar.gz → 1.0.40__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.39/src/boltz_vsynthes.egg-info → boltz_vsynthes-1.0.40}/PKG-INFO +1 -1
  2. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/pyproject.toml +1 -1
  3. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/schema.py +54 -9
  4. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40/src/boltz_vsynthes.egg-info}/PKG-INFO +1 -1
  5. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/LICENSE +0 -0
  6. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/README.md +0 -0
  7. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/setup.cfg +0 -0
  8. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/__init__.py +0 -0
  9. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/__init__.py +0 -0
  10. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/const.py +0 -0
  11. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/crop/__init__.py +0 -0
  12. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/crop/affinity.py +0 -0
  13. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/crop/boltz.py +0 -0
  14. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/crop/cropper.py +0 -0
  15. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/feature/__init__.py +0 -0
  16. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/feature/featurizer.py +0 -0
  17. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/feature/featurizerv2.py +0 -0
  18. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/feature/symmetry.py +0 -0
  19. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/__init__.py +0 -0
  20. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/__init__.py +0 -0
  21. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/date.py +0 -0
  22. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/filter.py +0 -0
  23. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/max_residues.py +0 -0
  24. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/resolution.py +0 -0
  25. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/size.py +0 -0
  26. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/dynamic/subset.py +0 -0
  27. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/static/__init__.py +0 -0
  28. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/static/filter.py +0 -0
  29. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/static/ligand.py +0 -0
  30. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/filter/static/polymer.py +0 -0
  31. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/module/__init__.py +0 -0
  32. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/module/inference.py +0 -0
  33. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/module/inferencev2.py +0 -0
  34. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/module/training.py +0 -0
  35. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/module/trainingv2.py +0 -0
  36. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/mol.py +0 -0
  37. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/msa/__init__.py +0 -0
  38. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/msa/mmseqs2.py +0 -0
  39. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/pad.py +0 -0
  40. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/__init__.py +0 -0
  41. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/a3m.py +0 -0
  42. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/csv.py +0 -0
  43. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/fasta.py +0 -0
  44. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/mmcif.py +0 -0
  45. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/mmcif_with_constraints.py +0 -0
  46. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/pdb.py +0 -0
  47. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/pdb_download.py +0 -0
  48. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/sdf.py +0 -0
  49. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/parse/yaml.py +0 -0
  50. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/sample/__init__.py +0 -0
  51. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/sample/cluster.py +0 -0
  52. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/sample/distillation.py +0 -0
  53. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/sample/random.py +0 -0
  54. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/sample/sampler.py +0 -0
  55. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/tokenize/__init__.py +0 -0
  56. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/tokenize/boltz.py +0 -0
  57. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/tokenize/boltz2.py +0 -0
  58. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/tokenize/tokenizer.py +0 -0
  59. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/types.py +0 -0
  60. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/write/__init__.py +0 -0
  61. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/write/mmcif.py +0 -0
  62. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/write/pdb.py +0 -0
  63. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/write/utils.py +0 -0
  64. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/data/write/writer.py +0 -0
  65. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/main.py +0 -0
  66. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/__init__.py +0 -0
  67. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/__init__.py +0 -0
  68. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/attention.py +0 -0
  69. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/attentionv2.py +0 -0
  70. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/confidence_utils.py +0 -0
  71. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/dropout.py +0 -0
  72. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/initialize.py +0 -0
  73. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/outer_product_mean.py +0 -0
  74. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/pair_averaging.py +0 -0
  75. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/pairformer.py +0 -0
  76. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/relative.py +0 -0
  77. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/transition.py +0 -0
  78. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/triangular_attention/__init__.py +0 -0
  79. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/triangular_attention/attention.py +0 -0
  80. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/triangular_attention/primitives.py +0 -0
  81. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/triangular_attention/utils.py +0 -0
  82. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/layers/triangular_mult.py +0 -0
  83. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/__init__.py +0 -0
  84. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/bfactor.py +0 -0
  85. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/confidence.py +0 -0
  86. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/confidencev2.py +0 -0
  87. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/diffusion.py +0 -0
  88. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/diffusionv2.py +0 -0
  89. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/distogram.py +0 -0
  90. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/distogramv2.py +0 -0
  91. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/loss/validation.py +0 -0
  92. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/models/__init__.py +0 -0
  93. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/models/boltz1.py +0 -0
  94. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/models/boltz2.py +0 -0
  95. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/__init__.py +0 -0
  96. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/affinity.py +0 -0
  97. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/confidence.py +0 -0
  98. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/confidence_utils.py +0 -0
  99. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/confidencev2.py +0 -0
  100. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/diffusion.py +0 -0
  101. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/diffusion_conditioning.py +0 -0
  102. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/diffusionv2.py +0 -0
  103. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/encoders.py +0 -0
  104. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/encodersv2.py +0 -0
  105. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/transformers.py +0 -0
  106. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/transformersv2.py +0 -0
  107. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/trunk.py +0 -0
  108. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/trunkv2.py +0 -0
  109. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/modules/utils.py +0 -0
  110. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/optim/__init__.py +0 -0
  111. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/optim/ema.py +0 -0
  112. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/optim/scheduler.py +0 -0
  113. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/potentials/__init__.py +0 -0
  114. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/potentials/potentials.py +0 -0
  115. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz/model/potentials/schedules.py +0 -0
  116. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz_vsynthes.egg-info/SOURCES.txt +0 -0
  117. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz_vsynthes.egg-info/dependency_links.txt +0 -0
  118. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz_vsynthes.egg-info/entry_points.txt +0 -0
  119. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz_vsynthes.egg-info/requires.txt +0 -0
  120. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/src/boltz_vsynthes.egg-info/top_level.txt +0 -0
  121. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/tests/test_kernels.py +0 -0
  122. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/tests/test_regression.py +0 -0
  123. {boltz_vsynthes-1.0.39 → boltz_vsynthes-1.0.40}/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.39
3
+ Version: 1.0.40
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.39"
7
+ version = "1.0.40"
8
8
  requires-python = ">=3.10,<3.13"
9
9
  description = "Boltz for VSYNTHES"
10
10
  readme = "README.md"
@@ -1326,6 +1326,60 @@ def parse_boltz_schema( # noqa: C901, PLR0915, PLR0912
1326
1326
  "cyclic", False
1327
1327
  ), "Cyclic flag is not supported for ligands"
1328
1328
 
1329
+ elif (entity_type == "ligand") and ("sdf" in items[0][entity_type]):
1330
+ # Handle SDF file
1331
+ sdf_path = Path(items[0][entity_type]["sdf"])
1332
+ from boltz.data.parse.sdf import parse_sdf
1333
+ target = parse_sdf(sdf_path, ccd, mol_dir)
1334
+ mol = target["sequences"][0]["ligand"]["smiles"]
1335
+
1336
+ if affinity:
1337
+ mol = standardize(mol)
1338
+
1339
+ mol = AllChem.MolFromSmiles(mol)
1340
+ mol = AllChem.AddHs(mol)
1341
+
1342
+ # Set atom names
1343
+ canonical_order = AllChem.CanonicalRankAtoms(mol)
1344
+ for atom, can_idx in zip(mol.GetAtoms(), canonical_order):
1345
+ atom_name = atom.GetSymbol().upper() + str(can_idx + 1)
1346
+ if len(atom_name) > 4:
1347
+ msg = (
1348
+ f"{mol} has an atom with a name longer than "
1349
+ f"4 characters: {atom_name}."
1350
+ )
1351
+ raise ValueError(msg)
1352
+ atom.SetProp("name", atom_name)
1353
+
1354
+ success = compute_3d_conformer(mol)
1355
+ if not success:
1356
+ msg = f"Failed to compute 3D conformer for {mol}"
1357
+ raise ValueError(msg)
1358
+
1359
+ mol_no_h = AllChem.RemoveHs(mol, sanitize=False)
1360
+ affinity_mw = AllChem.Descriptors.MolWt(mol_no_h) if affinity else None
1361
+ extra_mols[f"LIG{ligand_id}"] = mol_no_h
1362
+ residue = parse_ccd_residue(
1363
+ name=f"LIG{ligand_id}",
1364
+ ref_mol=mol,
1365
+ res_idx=0,
1366
+ )
1367
+
1368
+ ligand_id += 1
1369
+ parsed_chain = ParsedChain(
1370
+ entity=entity_id,
1371
+ residues=[residue],
1372
+ type=const.chain_type_ids["NONPOLYMER"],
1373
+ cyclic_period=0,
1374
+ sequence=None,
1375
+ affinity=affinity,
1376
+ affinity_mw=affinity_mw,
1377
+ )
1378
+
1379
+ assert not items[0][entity_type].get(
1380
+ "cyclic", False
1381
+ ), "Cyclic flag is not supported for ligands"
1382
+
1329
1383
  else:
1330
1384
  msg = f"Invalid entity type: {entity_type}"
1331
1385
  raise ValueError(msg)
@@ -1393,15 +1447,6 @@ def parse_boltz_schema( # noqa: C901, PLR0915, PLR0912
1393
1447
  chain_id=asym_id,
1394
1448
  mw=chain.affinity_mw,
1395
1449
  )
1396
- # Save affinity info if output directory is specified
1397
- if output_dir is not None:
1398
- affinity_path = subfolder / "affinity_info.json"
1399
- with open(affinity_path, "w") as f:
1400
- json.dump({
1401
- "chain_id": asym_id,
1402
- "mw": chain.affinity_mw,
1403
- "chain_name": chain_name
1404
- }, f)
1405
1450
 
1406
1451
  # Find all copies of this chain in the assembly
1407
1452
  entity_id = int(chain.entity)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boltz-vsynthes
3
- Version: 1.0.39
3
+ Version: 1.0.40
4
4
  Summary: Boltz for VSYNTHES
5
5
  Requires-Python: <3.13,>=3.10
6
6
  Description-Content-Type: text/markdown
File without changes