Skip to main content

Toolbox for chemical synthesis planning

Project description

SynPlanner banner

End-to-end retrosynthetic planning from raw reaction data

Docs Tutorials Paper GUI demo

PyPI Python License Downloads Last commit


SynPlanner is an open-source tool for retrosynthetic planning. It integrates Monte Carlo Tree Search (MCTS) with graph neural networks to evaluate applicable reaction rules (policy network) and the synthesizability of intermediate products (value network).

  • Data curation: standardize and filter raw chemical reaction data
  • Rule extraction: extract reaction templates with configurable specificity
  • Model training: train policy and value networks (supervised + RL)
  • Retrosynthesis: MCTS-based planning with multiple search strategies
  • Route quality: competing-sites scoring for functional group selectivity (Westerlund et al.)
  • Route clustering: group routes by strategic bonds (Gilmullin et al.)
  • Visualization: HTML route reports and interactive GUI

Installation

Requires: Python 3.10 – 3.14 · Linux x86_64, macOS arm64 · Docker images for other platforms

pip install SynPlanner
synplan --version

Quick start

1. Download pre-trained models, rules, and building blocks:

synplan download_preset --preset synplanner-article --save_to synplan_data

2. Run planning on a target molecule:

synplan planning \
  --config configs/planning_standard.yaml \
  --targets targets.smi \
  --reaction_rules synplan_data/policy/supervised_gcn/v1/reaction_rules.tsv \
  --building_blocks synplan_data/building_blocks/emolecules-salt-ln/building_blocks.tsv \
  --policy_network synplan_data/policy/supervised_gcn/v1/v1/ranking_policy.ckpt \
  --results_dir planning_results

[!TIP] Try it in the browser, no installation required: Retrosynthetic planning · Benchmarking · Route clustering

The full CLI includes commands for every pipeline step: reaction_mapping, reaction_standardizing, reaction_filtering, rule_extracting, ranking_policy_training, planning, clustering, and more. Run synplan --help for the complete list.

For local tutorials covering all steps from data curation to protection scoring, see the tutorials/ directory and the documentation.

Team

Questions & bug reports: open an issue or contact Tagir Akhmetshin (lead developer) and Almaz Gilmullin (clustering module)

Contributors: Timur Madzhidov (initiator), Alexandre Varnek (supervisor), Dmitry Zankov (data curation, tutorials, reproducibility), Philippe Gantzer (GUI, writing module), Dmitry Babadeev (planning, visualization), Anna Pinigina (rule extraction), Milo Roucairol (search strategies), Mikhail Volkov (testing)

Citation

If you use SynPlanner in your research, please cite:

Akhmetshin, T.; Zankov, D.; Gantzer, P.; Babadeev, D.; Pinigina, A.; Madzhidov, T.; Varnek, A. SynPlanner: An End-to-End Tool for Synthesis Planning. J. Chem. Inf. Model. 2025, 65 (1), 15–21. doi:10.1021/acs.jcim.4c02004

If you use route clustering, please also cite:

Gilmullin, A.; Akhmetshin, T.; Madzhidov, T.; Varnek, A. Route Clustering by Strategic Bonds. ChemRxiv, 2025. doi:10.26434/chemrxiv-2025-lnkz6-vz

If you use the protection / route quality scoring, please also cite:

Westerlund, A. M. et al. Toward Lab-Ready AI Synthesis Plans with Protection Strategies and Route Scoring. ChemRxiv, 2025. doi:10.26434/chemrxiv-2025-68ff6

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synplanner-1.4.4-py3-none-any.whl (255.5 kB view details)

Uploaded Python 3

File details

Details for the file synplanner-1.4.4-py3-none-any.whl.

File metadata

  • Download URL: synplanner-1.4.4-py3-none-any.whl
  • Upload date:
  • Size: 255.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for synplanner-1.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6c8c8eb999ad6977931e9ef3524170f3fa667c56a5adb02b6831b1555ed8980a
MD5 b1a92a620cb6f2c3462ee45b7df23151
BLAKE2b-256 e3bdc697ecb6f191f60ab7e60eae7ad1a8eee5c9edb1f1a927321e2ab6ceb12f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page