feat(validation): enforce single-anchor fragments
- skip fused/shared/multi-anchor side systems during extraction - add fragment library schema and fragment_library.csv export - make scaffold prep strict for non-spliceable positions
This commit is contained in:
@@ -5,7 +5,7 @@ from macro_lactone_toolkit import MacrolactoneFragmenter
|
||||
from macro_lactone_toolkit.splicing.engine import splice_molecule
|
||||
from macro_lactone_toolkit.splicing.scaffold_prep import prepare_macrolactone_scaffold
|
||||
|
||||
from .helpers import build_macrolactone, canonicalize
|
||||
from .helpers import build_macrolactone, build_macrolactone_with_fused_side_ring, canonicalize
|
||||
|
||||
|
||||
def test_splice_benzene_methyl():
|
||||
@@ -49,3 +49,14 @@ def test_prepare_scaffold_and_reassemble_fragment():
|
||||
product = splice_molecule(scaffold, Chem.MolFromSmiles(fragment.fragment_smiles_labeled), position=5)
|
||||
|
||||
assert canonicalize(product) == canonicalize(built.mol)
|
||||
|
||||
|
||||
def test_prepare_scaffold_rejects_position_without_single_anchor_fragment():
|
||||
built = build_macrolactone_with_fused_side_ring(side_chains={10: "methyl"})
|
||||
|
||||
with pytest.raises(ValueError, match="Position 5 does not contain a single-anchor fragmentable side chain"):
|
||||
prepare_macrolactone_scaffold(
|
||||
built.smiles,
|
||||
positions=[5],
|
||||
ring_size=16,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user