boltz-vsynthes 1.0.32__py3-none-any.whl → 1.0.33__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.
- boltz/data/parse/schema.py +37 -8
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/METADATA +1 -1
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/RECORD +7 -7
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/WHEEL +0 -0
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/entry_points.txt +0 -0
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/licenses/LICENSE +0 -0
- {boltz_vsynthes-1.0.32.dist-info → boltz_vsynthes-1.0.33.dist-info}/top_level.txt +0 -0
boltz/data/parse/schema.py
CHANGED
@@ -2,6 +2,7 @@ from collections.abc import Mapping
|
|
2
2
|
from dataclasses import dataclass
|
3
3
|
from pathlib import Path
|
4
4
|
from typing import Optional
|
5
|
+
import json
|
5
6
|
|
6
7
|
import click
|
7
8
|
import numpy as np
|
@@ -1425,15 +1426,43 @@ def parse_boltz_schema( # noqa: C901, PLR0915, PLR0912
|
|
1425
1426
|
protein_chains.add(chain_name)
|
1426
1427
|
|
1427
1428
|
# Add affinity info
|
1428
|
-
if chain.affinity and affinity_info is not None:
|
1429
|
-
msg = "Cannot compute affinity for multiple ligands!"
|
1430
|
-
raise ValueError(msg)
|
1431
|
-
|
1432
1429
|
if chain.affinity:
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1430
|
+
# If this is a protein binder, we need to create affinity info for each ligand
|
1431
|
+
if chain_name in affinity_proteins:
|
1432
|
+
# Find all ligand chains
|
1433
|
+
ligand_chains = [
|
1434
|
+
(name, c) for name, c in chains.items()
|
1435
|
+
if c.type == const.chain_type_ids["NONPOLYMER"]
|
1436
|
+
]
|
1437
|
+
if not ligand_chains:
|
1438
|
+
msg = "No ligand chains found for protein binder!"
|
1439
|
+
raise ValueError(msg)
|
1440
|
+
|
1441
|
+
# Create affinity info for each ligand
|
1442
|
+
for ligand_name, ligand_chain in ligand_chains:
|
1443
|
+
affinity_info = AffinityInfo(
|
1444
|
+
chain_id=asym_id,
|
1445
|
+
mw=chain.affinity_mw,
|
1446
|
+
)
|
1447
|
+
# Save the affinity info in a subfolder named after the ligand
|
1448
|
+
output_dir = Path(f"output/{ligand_name}")
|
1449
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
1450
|
+
# Save the affinity info
|
1451
|
+
with open(output_dir / "affinity_info.json", "w") as f:
|
1452
|
+
json.dump({
|
1453
|
+
"chain_id": asym_id,
|
1454
|
+
"mw": chain.affinity_mw,
|
1455
|
+
"ligand_name": ligand_name
|
1456
|
+
}, f)
|
1457
|
+
else:
|
1458
|
+
# This is a ligand binder
|
1459
|
+
if affinity_info is not None:
|
1460
|
+
msg = "Cannot compute affinity for multiple ligands!"
|
1461
|
+
raise ValueError(msg)
|
1462
|
+
affinity_info = AffinityInfo(
|
1463
|
+
chain_id=asym_id,
|
1464
|
+
mw=chain.affinity_mw,
|
1465
|
+
)
|
1437
1466
|
|
1438
1467
|
# Find all copies of this chain in the assembly
|
1439
1468
|
entity_id = int(chain.entity)
|
@@ -40,7 +40,7 @@ boltz/data/parse/mmcif.py,sha256=25kEXCkx-OuaawAs7cdz0fxdRu5_CCO0AV00u84PrjQ,368
|
|
40
40
|
boltz/data/parse/mmcif_with_constraints.py,sha256=WHYZckSqUwu-Nb9vmVmxHmC7uxwVrF7AVUeVKsc5wGQ,51473
|
41
41
|
boltz/data/parse/pdb.py,sha256=iybk4p2UgUy_ABGprDq_xxyPSdm1HAZsGTM0lhxVEwM,1654
|
42
42
|
boltz/data/parse/pdb_download.py,sha256=wge-scX-lOatX0q83W1wOsaql99rYp-6uGWSHEc995M,2718
|
43
|
-
boltz/data/parse/schema.py,sha256=
|
43
|
+
boltz/data/parse/schema.py,sha256=5eU-_NR-g2XTtDpYXoREAy84DWTyHN8yRiXngd4BShs,65676
|
44
44
|
boltz/data/parse/sdf.py,sha256=fs3MQVClDcCzxJaeVYiDuoh-fUrYc8Tcd5Bz8ws3FKI,2052
|
45
45
|
boltz/data/parse/yaml.py,sha256=GRFRMtDD4PQ4PIpA_S1jj0vRaEu2LlZd_g4rN1zUrNo,1505
|
46
46
|
boltz/data/sample/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -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.
|
111
|
-
boltz_vsynthes-1.0.
|
112
|
-
boltz_vsynthes-1.0.
|
113
|
-
boltz_vsynthes-1.0.
|
114
|
-
boltz_vsynthes-1.0.
|
115
|
-
boltz_vsynthes-1.0.
|
110
|
+
boltz_vsynthes-1.0.33.dist-info/licenses/LICENSE,sha256=8GZ_1eZsUeG6jdqgJJxtciWzADfgLEV4LY8sKUOsJhc,1102
|
111
|
+
boltz_vsynthes-1.0.33.dist-info/METADATA,sha256=XadtfwQoBLRNyaCe61wdMoCixayUE05BNfA7Y7hblgI,7171
|
112
|
+
boltz_vsynthes-1.0.33.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
113
|
+
boltz_vsynthes-1.0.33.dist-info/entry_points.txt,sha256=n5a5I35ntu9lmyr16oZgHPFY0b0YxjiixY7m7nbMTLc,41
|
114
|
+
boltz_vsynthes-1.0.33.dist-info/top_level.txt,sha256=MgU3Jfb-ctWm07YGMts68PMjSh9v26D0gfG3dFRmVFA,6
|
115
|
+
boltz_vsynthes-1.0.33.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|