github Laboratoire-de-Chemoinformatique/SynPlanner v1.3.2
v.1.3.2

one day ago

Breaking Changes

  • Dev/install workflow migrated to uv: removed poetry.lock, added uv.lock, CI/Docs builds now use uv (pyproject.toml, readthedocs.yaml, .github/workflows/*).
  • Config file paths reorganized/renamed (update any scripts/docs referencing old names):
    • configs/planning.yamlconfigs/planning_standard.yaml
    • configs/policy.yamlconfigs/policy_training.yaml
    • configs/extraction.yamlconfigs/extraction_functional_groups.yaml
    • configs/filtration.yamlconfigs/reactions_filtration.yaml
    • configs/standardization.yamlconfigs/reactions_standardization.yaml

Added

  • Alternative search algorithms for planning (select via tree.algorithm): NMCS, LazyNMCS, Best-first, Breadth-first, Beam (synplan/mcts/algorithm.py, docs/methods/mcts.rst, docs/configuration/planning.rst).
  • NMCS configuration knobs: nmcs_level, nmcs_playout_mode, lnmcs_ratio (docs + synplan/utils/config.py).
  • Combined filtering + ranking policy support:
    • New combined policy expansion class (synplan/mcts/expansion.py)
    • Example configs (configs/combined_ranking_filtering_policy.yaml, configs/planning_combined_policies.yaml)
    • New tutorial notebook: tutorials/Combined_ranking_filtering_policy.ipynb
  • SAScore benchmark tooling:
    • CLI entrypoints: sascore-benchmark, sascore-plot (pyproject.toml)
    • Scripts and config: scripts/sascore_bench/run_benchmark.py, scripts/sascore_bench/plot_results.py, scripts/sascore_bench/config.yaml
  • CSV / CSV.GZ building blocks support (header/no-header, configurable delimiter and SMILES column): synplan/utils/loading.py, synplan/utils/files.py (+ tests in tests/unit/utils/test_loading.py).
  • New planning config templates: configs/planning_value.yaml, configs/rules_extraction.yaml.
  • New tutorial notebook: tutorials/NMCS_Algorithms.ipynb.

Performance Improvements

  • Faster building blocks loading/standardization via chunked IO + optional process-pool mapping (synplan/utils/loading.py, synplan/utils/files.py).
  • LazyNMCS pruning reduces branching factor for deep searches (synplan/mcts/algorithm.py).

Changed

  • Evaluation refactor to strategy-based evaluation (rollout/value-net/RDKit/policy/random) with centralized rollout simulator (synplan/mcts/evaluation.py, synplan/utils/loading.py, synplan/utils/config.py).
  • Docker builds updated (uv-based installs; refreshed CLI/GUI images) (cli.Dockerfile, gui.Dockerfile, Dockerfile, docs updates).
  • CI + release workflows updated (uv-based build/publish; PyPI/TestPyPI pipeline fixes) (.github/workflows/ci.yml, pypi.yml, test-pypi.yml, build-docker.yml).
  • Documentation updated for planning config, MCTS algorithms, installation/dev, and Docker usage (docs/*, README.rst).

Don't miss a new SynPlanner release

NewReleases is sending notifications on new releases.