# macro_lactone_toolkit `macro_lactone_toolkit` 是一个正式可安装的 Python 包,用于 12-20 元有效大环内酯的识别、环编号、侧链裂解和简单拼接回组装。 ## 核心能力 - 默认自动识别 12-20 元有效大环内酯,也允许显式指定 `ring_size` - 环编号规则固定为: - 位置 1 = 内酯羰基碳 - 位置 2 = 环上的酯键氧 - 位置 3-N = 沿统一方向连续编号 - 侧链裂解同时输出两套 SMILES: - `fragment_smiles_labeled`,例如 `[5*]` - `fragment_smiles_plain`,例如 `*` - dummy 原子与连接原子的原始键型保持一致 - 提供正式 CLI: - `macro-lactone-toolkit analyze` - `macro-lactone-toolkit number` - `macro-lactone-toolkit fragment` ## 环境 推荐使用 `pixi`,项目已固定到 Python 3.12,并支持 `osx-arm64` 与 `linux-64`。 ```bash pixi install pixi run pytest pixi run python -c "import macro_lactone_toolkit" ``` ## Python API ```python from macro_lactone_toolkit import MacroLactoneAnalyzer, MacrolactoneFragmenter analyzer = MacroLactoneAnalyzer() valid_ring_sizes = analyzer.get_valid_ring_sizes("O=C1CCCCCCCCCCCCCCO1") fragmenter = MacrolactoneFragmenter() numbering = fragmenter.number_molecule("O=C1CCCCCCCCCCCCCCO1") result = fragmenter.fragment_molecule("O=C1CCCC(C)CCCCCCCCCCO1", parent_id="mol_001") ``` ## CLI 单分子分析: ```bash pixi run macro-lactone-toolkit analyze --smiles "O=C1CCCCCCCCCCCCCCO1" pixi run macro-lactone-toolkit number --smiles "O=C1CCCCCCCCCCCCCCO1" pixi run macro-lactone-toolkit fragment --smiles "O=C1CCCC(C)CCCCCCCCCCO1" --parent-id mol_001 ``` CSV 批处理: ```bash pixi run macro-lactone-toolkit fragment \ --input molecules.csv \ --output fragments.csv \ --errors-output fragment_errors.csv ``` 默认读取 `smiles` 列;若存在 `id` 列则将其作为 `parent_id`,否则自动生成 `row_`。 ## Legacy Scripts `scripts/` 目录保留为薄封装或迁移提示,不再承载核心实现。正式接口以 `macro_lactone_toolkit.*` 与 `macro-lactone-toolkit` CLI 为准。