ChemCensor is a precedent-based framework for evaluating reaction chemical plausibility. It separates the reaction center (what changes) from the functional-group context (what must be tolerated), then checks whether similar patterns are supported by known precedents stored in an SQLite database.
The resulting ChemCensor Score is an integer confidence level from 0 to 5, where higher values indicate stronger precedent support.
python -m pip install -e .Below is a complete step-by-step workflow with commands.
git clone https://github.com/insilicomedicine/ChemCensor.git
cd ChemCensor
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e .mkdir -p data
hf download insilicomedicine/chemcensor \
--repo-type dataset \
--include "ChemCensor-DB-U2-1.0.0.sqlite.zip" \
--local-dir dataunzip -j -o data/ChemCensor-DB-U2-1.0.0.sqlite.zip -d data/After unpacking you should have:
data/ChemCensor-DB-U2-1.0.0.sqlite
from chemcensor import ChemCensor
db_path = "data/ChemCensor-DB-U2-1.0.0.sqlite"
censor = ChemCensor(db_path=db_path)
reaction_smiles = "CCO.CC(=O)O>>CCOC(=O)C"
score = censor.score(reaction_smiles)
print(score)
db_pathcan point to any local.sqlitefile location; usingdata/is a convenient project convention.
ChemCensor is released under a license for independent benchmarking and evaluation purposes only. Use in products, pipelines, automated workflows, or redistribution requires prior written permission from Insilico. See LICENSE for full terms.
If you use ChemCensor in your work, please cite:
@misc{zagribelnyy2026singleanswerenoughrethinking,
title={When Single Answer Is Not Enough: Rethinking Single-Step Retrosynthesis Benchmarks for LLMs},
author={Bogdan Zagribelnyy and Ivan Ilin and Maksim Kuznetsov and Nikita Bondarev and Roman Schutski
and Thomas MacDougall and Rim Shayakhmetov and Zulfat Miftakhutdinov
and Mikolaj Mizera and Vladimir Aladinskiy and Alex Aliper and Alex Zhavoronkov},
year={2026},
eprint={2602.03554},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2602.03554}
}