feat(toolkit): ship macro_lactone_toolkit package
Unify macrolactone detection, numbering, fragmentation, and splicing under the installable macro_lactone_toolkit package. - replace legacy src.* modules with the new package layout - add analyze/number/fragment CLI entrypoints and pixi tasks - migrate tests, README, and scripts to the new package API
This commit is contained in:
@@ -1,10 +1,34 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Tylosin Splicing System - Main Entry Point
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
|
||||
from rdkit import Chem
|
||||
|
||||
from macro_lactone_toolkit.splicing import (
|
||||
activate_fragment,
|
||||
prepare_macrolactone_scaffold,
|
||||
splice_molecule,
|
||||
)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Splice a fragment onto a prepared macrolactone scaffold.")
|
||||
parser.add_argument("--scaffold-smiles", required=True)
|
||||
parser.add_argument("--fragment-smiles", required=True)
|
||||
parser.add_argument("--position", required=True, type=int)
|
||||
parser.add_argument("--ring-size", type=int, default=None)
|
||||
parser.add_argument("--strategy", default="smart")
|
||||
args = parser.parse_args()
|
||||
|
||||
scaffold, _ = prepare_macrolactone_scaffold(
|
||||
args.scaffold_smiles,
|
||||
positions=[args.position],
|
||||
ring_size=args.ring_size,
|
||||
)
|
||||
fragment = activate_fragment(args.fragment_smiles, strategy=args.strategy)
|
||||
product = splice_molecule(scaffold, fragment, position=args.position)
|
||||
print(Chem.MolToSmiles(product, isomericSmiles=True))
|
||||
|
||||
def main():
|
||||
print("Hello from Tylosin Splicer")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user