Syndirella (Synthesis Directed Elaborations) is a tool for generating and scoring synthetically practical elaborations of molecules designed from fragment screens. Starting from the retrosynthetic analysis of fragment merged molecules, superstructures of the original reactants are found by catalog search and filtered by selectivity issues. The elaborated final products are defined by reaction SMIRKS patterns and energy minimized in the protein with restraints to experimental data.
Preprint: https://chemrxiv.org/engage/chemrxiv/article-details/68d4f08ff416303770403a44
Documentation
Full Documentation - Complete user guide, API reference, and examples
Quick Start
Installation
conda create -n syndirella python=3.10
conda activate syndirella
pip install syndirella
pip install aizynthfinder
python -c 'import pyrosetta_installer; pyrosetta_installer.install_pyrosetta()' # run once, for Fragmenstein
Note: PyRosetta is required by Fragmenstein to operate. Syndirella does not use PyRosetta by default to score compounds. PyRosetta is available for academic and non-commercial use (see PyRosetta License).
Troubleshooting:
cgrtools fails to install:
pip install "cython<3.2"
conda install -c conda-forge c-compiler cxx-compiler
pip install --no-build-isolation cgrtools
Install with HIPPO (optional)
pip install syndirella[hippo]
python -c 'import pyrosetta_installer; pyrosetta_installer.install_pyrosetta()' # run once, for Fragmenstein
pip install aizynthfinder reaction-utils --no-deps # AiZynthFinder and reaction-utils declare `numpy = "<2.0.0"` and `rdkit = "^2023.9.1"` which are uncompatible with HIPPO. Install with `--no-deps` so pip does not pull the wrong NumPy and RDKit versions.
pip install tqdm paretoset networkx rdchiral wrapt wrapt_timeout_decorator xxhash swifter apted onnxruntime tables
conda install -c conda-forge chemicalite
See the HIPPO documentation for full setup and version compatibility.
Basic Usage
-
Setup AiZynthFinder (required for retrosynthesis):
⚠️ WARNING: This step downloads large model files (~750MB total) if run the first time. These are required to run AiZynthFinder.
Files will be downloaded to:
[syndirella_package_path]/aizynth/syndirella setup-aizynth -
Run the pipeline:
syndirella run --input /absolute/path/to/input.csv --output /absolute/path/to/output_directory --templates /absolute/path/to/templates/ --hits_path /absolute/path/to/fragments.sdf
Note: All paths must be absolute paths.
Example Input
Create a CSV file with your fragment data. Hit names must match the exact names in your SDF file:
smiles,hit1,hit2,hit3,template,compound_set
O=C(NC1CC(C(F)(F)F)C1)c1cc2ccsc2[nH]1,A71EV2A-x0556_A_147_1_A71EV2A-x0526+A+147+1,A71EV2A-x0566_A_147_1_A71EV2A-x0526+A+147+1,,Ax0310a_apo-desolv,my_compound_set
CC(=O)Nc1cc(CC(=O)NCC(NC(=O)CCl)c2cccnc2)c(NC(C)=O)nn1,A71EV2A-x1346_A_250_1_A71EV2A-x0526+A+147+1,,,Ax1346a_apo-desolv,my_compound_set
For complete examples and templates, see the run_syndirella_example directory.
Output Files
The main output file to read is the structured_output.pkl.gz file, which contains:
- Complete synthesis routes with reaction details
- Placement information with energy values
- Structural quality metrics
- Product information and success flags
This file contains all the information needed to analyze and reproduce the elaborations.
Requirements
- Python 3.10
- RDKit
- AiZynthFinder
- Fragmenstein
- Additional dependencies (see pyproject.toml)
Learn More
- Examples - Jupyter notebooks and sample data
- User Guide - Detailed usage instructions
- Reaction Constants - Advanced reaction settings and options
License
This project is licensed under the MIT License.
Metadata
Release files for xchem-syndirella 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xchem_syndirella-1.0.6.tar.gz | 13.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xchem_syndirella-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.7 MB
Release files / xchem_syndirella-1.0.6.tar.gz
| Download URL | xchem_syndirella-1.0.6.tar.gz |
|---|---|
| Size | 13.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7a86da5312fb33a7cbccaaad5c282684886ff3b3d097caf30fd2f136e787457
|
|
BLAKE2b-256 checksum How to use checksums |
8dca8e9a4186ca49213fee9ac25e6f4222c6f05b8264763cc74f1ed15eba14c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.
Transparency logRelease files / xchem_syndirella-1.0.6-py3-none-any.whl
| Download URL | xchem_syndirella-1.0.6-py3-none-any.whl |
|---|---|
| Size | 9.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7d6ebea95bb3c6f81a236937206f918bdfbed2e1189dce456695dafeab8c8ac
|
|
BLAKE2b-256 checksum How to use checksums |
14ba1c75cf4234f600ee2737e96894749fe4f52dab2d6231af784d107b1bb08e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.
Transparency log