RetroChimera is a frontier retrosynthesis model, built upon ensembling two novel components with complementary inductive biases. It outperforms existing models by a large margin, can learn from a very small number of examples per reaction class, and is preferred by industrial organic chemists over the reactions it was trained on in blind tests.
Using RetroChimera
To install retrochimera locally, run
conda env create -f environment.yml
conda activate retrochimera
pip install retrochimera
then you can run inference via
from retrochimera import RetroChimeraModel
from syntheseus import Molecule
model = RetroChimeraModel(model_dir="/model/checkpoint/dir/")
mol = Molecule("Oc1ccc(OCc2ccccc2)c(Br)c1")
predictions = model([mol], num_results=3)
for p in predictions[0]:
print(p, f"({100. * p.metadata['probability']:.2f}%)")
For installation, there are two additional dependency groups: dev for running tests, and graphium for building the model architecture we used for USPTO-50K; if you care about running the USPTO-50K checkpoint, you need to install via pip install retrochimera[graphium].
If you want to train your own checkpoint, please follow the instructions in retrochimera/README.md.
Checkpoints for RetroChimera 1
The main (and most powerful) checkpoint we release is trained on Pistachio. For benchmarking, we also provide (weaker) checkpoints trained on USPTO-50K and USPTO-FULL.
If you care about reproducing the USPTO-* results from our paper exactly, make sure to use the inference hyperparameters listed in Extended Data Tables 3 and 4. By default, these parameters are set to values optimized for the Pistachio checkpoint.
Finally, we release a forward model checkpoint, which uses the same architecture as the SMILES-based submodel of RetroChimera and was also trained on Pistachio.
Citation
If you use RetroChimera in your work, please consider citing our arXiv preprint (bibtex below).
@article{maziarz2025chemist,
title={Chemist-aligned retrosynthesis by ensembling diverse inductive bias models},
author={Maziarz, Krzysztof and Liu, Guoqing and Misztela, Hubert and Tripp, Austin and Li, Junren and Kornev, Aleksei and Gai{\'n}ski, Piotr and Hoefling, Holger and Fortunato, Mike and Gupta, Rishi and Segler, Marwin},
journal={arXiv preprint arXiv:2412.05269},
year={2025}
}
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.
Metadata
Release files for retrochimera 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| retrochimera-1.3.0.tar.gz | 197.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| retrochimera-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 368.7 kB
Release files / retrochimera-1.3.0.tar.gz
| Download URL | retrochimera-1.3.0.tar.gz |
|---|---|
| Size | 197.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f73a6c6e7a93f1efa707ffbf5f365ded18c5b7cae9d1efdca0bc7a7997a8314
|
|
BLAKE2b-256 checksum How to use checksums |
7aa2548947065f5b89179d9ef0bd161a009611b27e0c828771ed0bc89bdba281
|
| 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 Sep 21, 2026.
Transparency logRelease files / retrochimera-1.3.0-py3-none-any.whl
| Download URL | retrochimera-1.3.0-py3-none-any.whl |
|---|---|
| Size | 171.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2966251df87811b2b9cdd935200258a28c4a3da438d21f54ecba9336a93def6a
|
|
BLAKE2b-256 checksum How to use checksums |
738a7acb2b2c96a3f8af875aa5cca8172503c732593cc1adba133cab325d023b
|
| 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 Sep 21, 2026.
Transparency log