boltz-vsynthes 1.0.31__py3-none-any.whl → 1.0.32__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 +54 -0
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/METADATA +1 -1
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/RECORD +7 -7
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/WHEEL +0 -0
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/entry_points.txt +0 -0
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/licenses/LICENSE +0 -0
- {boltz_vsynthes-1.0.31.dist-info → boltz_vsynthes-1.0.32.dist-info}/top_level.txt +0 -0
boltz/data/parse/schema.py
CHANGED
@@ -1313,6 +1313,60 @@ def parse_boltz_schema( # noqa: C901, PLR0915, PLR0912
|
|
1313
1313
|
"cyclic", False
|
1314
1314
|
), "Cyclic flag is not supported for ligands"
|
1315
1315
|
|
1316
|
+
elif (entity_type == "ligand") and ("sdf" in items[0][entity_type]):
|
1317
|
+
# Handle SDF file
|
1318
|
+
sdf_path = Path(items[0][entity_type]["sdf"])
|
1319
|
+
from boltz.data.parse.sdf import parse_sdf
|
1320
|
+
target = parse_sdf(sdf_path, ccd, mol_dir)
|
1321
|
+
mol = target["sequences"][0]["ligand"]["smiles"]
|
1322
|
+
|
1323
|
+
if affinity:
|
1324
|
+
mol = standardize(mol)
|
1325
|
+
|
1326
|
+
mol = AllChem.MolFromSmiles(mol)
|
1327
|
+
mol = AllChem.AddHs(mol)
|
1328
|
+
|
1329
|
+
# Set atom names
|
1330
|
+
canonical_order = AllChem.CanonicalRankAtoms(mol)
|
1331
|
+
for atom, can_idx in zip(mol.GetAtoms(), canonical_order):
|
1332
|
+
atom_name = atom.GetSymbol().upper() + str(can_idx + 1)
|
1333
|
+
if len(atom_name) > 4:
|
1334
|
+
msg = (
|
1335
|
+
f"{mol} has an atom with a name longer than "
|
1336
|
+
f"4 characters: {atom_name}."
|
1337
|
+
)
|
1338
|
+
raise ValueError(msg)
|
1339
|
+
atom.SetProp("name", atom_name)
|
1340
|
+
|
1341
|
+
success = compute_3d_conformer(mol)
|
1342
|
+
if not success:
|
1343
|
+
msg = f"Failed to compute 3D conformer for {mol}"
|
1344
|
+
raise ValueError(msg)
|
1345
|
+
|
1346
|
+
mol_no_h = AllChem.RemoveHs(mol, sanitize=False)
|
1347
|
+
affinity_mw = AllChem.Descriptors.MolWt(mol_no_h) if affinity else None
|
1348
|
+
extra_mols[f"LIG{ligand_id}"] = mol_no_h
|
1349
|
+
residue = parse_ccd_residue(
|
1350
|
+
name=f"LIG{ligand_id}",
|
1351
|
+
ref_mol=mol,
|
1352
|
+
res_idx=0,
|
1353
|
+
)
|
1354
|
+
|
1355
|
+
ligand_id += 1
|
1356
|
+
parsed_chain = ParsedChain(
|
1357
|
+
entity=entity_id,
|
1358
|
+
residues=[residue],
|
1359
|
+
type=const.chain_type_ids["NONPOLYMER"],
|
1360
|
+
cyclic_period=0,
|
1361
|
+
sequence=None,
|
1362
|
+
affinity=affinity,
|
1363
|
+
affinity_mw=affinity_mw,
|
1364
|
+
)
|
1365
|
+
|
1366
|
+
assert not items[0][entity_type].get(
|
1367
|
+
"cyclic", False
|
1368
|
+
), "Cyclic flag is not supported for ligands"
|
1369
|
+
|
1316
1370
|
else:
|
1317
1371
|
msg = f"Invalid entity type: {entity_type}"
|
1318
1372
|
raise ValueError(msg)
|
@@ -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=liL6Dl4P1bEq-nYwm8DOAXPfl32yYi84MgrcFXpR-0M,64220
|
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.32.dist-info/licenses/LICENSE,sha256=8GZ_1eZsUeG6jdqgJJxtciWzADfgLEV4LY8sKUOsJhc,1102
|
111
|
+
boltz_vsynthes-1.0.32.dist-info/METADATA,sha256=mGtHYvFndm8HdHsMfvXFMu5x4CwNVAAgdP5o_CVGBgU,7171
|
112
|
+
boltz_vsynthes-1.0.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
113
|
+
boltz_vsynthes-1.0.32.dist-info/entry_points.txt,sha256=n5a5I35ntu9lmyr16oZgHPFY0b0YxjiixY7m7nbMTLc,41
|
114
|
+
boltz_vsynthes-1.0.32.dist-info/top_level.txt,sha256=MgU3Jfb-ctWm07YGMts68PMjSh9v26D0gfG3dFRmVFA,6
|
115
|
+
boltz_vsynthes-1.0.32.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|