SynAD (Synthesis Applicability Domain) is a Python package for evaluating the synthesis applicability domain of chemical reaction prediction models. It provides tools for training machine learning models, evaluating their applicability domains, and computing confidence scores for reaction predictions.
- Model Training: Train various machine learning models (XGBoost, LightGBM, CatBoost, Neural Networks, etc.) for chemical reaction prediction
- SynAD Evaluation: Evaluate the synthesis applicability domain of trained models
- SynAD Score Computation: Calculate confidence scores for reaction predictions
- Multiple Datasets: Support for various chemical reaction datasets
- Flexible Architecture: Modular design for easy extension and customization
git clone https://github.com/deepsynthesis/synad.git
cd synad
conda create -n synad python==3.10.3
conda activate synad
pip install -e .git clone https://github.com/deepsynthesis/synad.git
cd synad
conda create -n synad-dev python==3.10.3
conda activate synad
pip install -e ".[dev]"- Python 3.10 or higher
- See
pyproject.tomlfor complete dependency list
see demo.ipynb for a detailed example of how to use SynAD for training, evaluating, and scoring reactions.
run python src/synad_eval_for_ULD.py
run python src/synad_eval_for_datasets.py
- Support for multiple ML algorithms (tree-based, neural networks)
- Automated hyperparameter optimization
- Cross-validation and evaluation metrics
SynADJudgementor: Main class for applicability domain evaluationSynADScoreEvaluator: Confidence score computation- Multiple distance metrics and evaluation strategies
- Helper functions for data processing
- Visualization tools
- Performance metrics
SynAD is model-agnostic, supporting a wide range of models from classical machine learning algorithms (e.g., XGBoost, Random Forest, SVM) to complex neural networks.
- ULD (Ullmann ligand dataset).
- Custom reaction datasets (with proper formattings)
This project is licensed under the MIT License - see the LICENSE file for details.