SynKit
Graph-native reaction informatics and executable electron-flow models
SynKit is a Python toolkit for atom-mapped reactions, chemical graph transformations, Lewis-labelled graphs, and explicitly supplied reaction mechanisms. It connects reaction representation, rule extraction, graph rewriting, stereochemistry, and mechanism verification through a common attributed-graph model.
SynKit verifies mechanisms supplied by the user; it does not claim to predict the kinetically or thermodynamically preferred mechanism.
Highlights
- Convert mapped reaction SMILES into ITS and reaction-centre graphs.
- Extract and apply attributed graph-transformation rules.
- Represent lone pairs, radicals, and separate sigma and pi occupancies with Lewis-labelled graphs.
- Execute curved-arrow and atomically coupled fishhook events.
- Preserve tetrahedral, axial, and extended stereochemical information.
- Build and analyse mechanism trajectory graphs and chemical reaction networks.
Installation
SynKit requires Python 3.11 or later.
python -m pip install synkit
Install the optional dependencies with:
python -m pip install "synkit[all]"
Alternatively, use the published container:
docker pull tieulongphan/synkit:latest
docker run --rm tieulongphan/synkit:latest \
python -c "import synkit; print(synkit.__version__)"
Quick start
This self-contained example converts an atom-mapped substitution into an imaginary transition-state graph and reports its changed bonds:
from synkit.IO import rsmi_to_its
reaction = "[CH3:1][Br:2].[OH-:3]>>[CH3:1][OH:3].[Br-:2]"
its = rsmi_to_its(reaction, core=False, format="tuple")
changed_bonds = [
(source, target, data["order"])
for source, target, data in its.edges(data=True)
if data["order"][0] != data["order"][1]
]
print(changed_bonds)
The output records the broken C-Br bond as (1.0, 0.0) and the formed C-O
bond as (0.0, 1.0). Continue with the
graph,
rule, and
synthesis guides.
Supplied-mechanism verification
SynKit can parse typed electron-flow annotations, replay their elementary steps, and return a verification certificate and mechanism trajectory graph. Canonical electron loci distinguish lone pairs, sigma bonds, pi bonds, and radical electrons. Curved arrows carry two electrons; fishhooks carry one; coupled radical events commit atomically from a common pre-state.
See the mechanism documentation for the supported interchange formats, verification policies, and complete examples.
Documentation
Publications
- Lewis-labeled graphs: curly arrows and fishhooks as executable electron transfers, submitted (2026).
- SynKit: A Graph-Based Python Framework for Rule-Based Reaction Modeling and Analysis, Journal of Chemical Information and Modeling (2025).
Contributing
Contributions and bug reports are welcome. Create a branch from the current mainline, make a focused change, and run the repository checks before opening a pull request:
git switch -c feature/short-description
bash scripts/lint.sh
bash scripts/pytest.sh
Questions can be sent to tieu@bioinf.uni-leipzig.de.
Contributors
License
SynKit is distributed under the MIT License. See LICENSE.
Acknowledgments
This project received funding from the European Union's Horizon Europe Doctoral Network programme under Marie Skłodowska-Curie grant agreement No. 101072930 (TACsy).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synkit-1.6.2.tar.gz.
File metadata
- Download URL: synkit-1.6.2.tar.gz
- Upload date:
- Size: 999.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05ae73985fa688c4ceeb7da18577013d96beacfbf9e1784e01f23198c2cb13fe
|
|
| MD5 |
2d624b5d7ea3e1511eaf1413d6b8c2b7
|
|
| BLAKE2b-256 |
d58df0324aa761487db914772baff986bcdac2b8592dd0b8efc173c1b91627bd
|
Provenance
The following attestation bundles were made for synkit-1.6.2.tar.gz:
Publisher:
publish-package.yml on TieuLongPhan/SynKit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synkit-1.6.2.tar.gz -
Subject digest:
05ae73985fa688c4ceeb7da18577013d96beacfbf9e1784e01f23198c2cb13fe - Sigstore transparency entry: 2501067880
- Sigstore integration time:
-
Permalink:
TieuLongPhan/SynKit@cffede867914c89915e24fd86bacd608f4b651d0 -
Branch / Tag:
refs/tags/v1.6.2 - Owner: https://github.com/TieuLongPhan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-package.yml@cffede867914c89915e24fd86bacd608f4b651d0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file synkit-1.6.2-py3-none-any.whl.
File metadata
- Download URL: synkit-1.6.2-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70a63b5fe931ea6da7eef0f5f11619264f2e1c134f15ec1f74e10c2dce2f71aa
|
|
| MD5 |
75940ea5ebb05fea6158873d8a6ddbe1
|
|
| BLAKE2b-256 |
35fc08f2a37b64cae235ef4fdd3e2f390420ff586175f1d7cef21180b92598e4
|
Provenance
The following attestation bundles were made for synkit-1.6.2-py3-none-any.whl:
Publisher:
publish-package.yml on TieuLongPhan/SynKit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synkit-1.6.2-py3-none-any.whl -
Subject digest:
70a63b5fe931ea6da7eef0f5f11619264f2e1c134f15ec1f74e10c2dce2f71aa - Sigstore transparency entry: 2501067913
- Sigstore integration time:
-
Permalink:
TieuLongPhan/SynKit@cffede867914c89915e24fd86bacd608f4b651d0 -
Branch / Tag:
refs/tags/v1.6.2 - Owner: https://github.com/TieuLongPhan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-package.yml@cffede867914c89915e24fd86bacd608f4b651d0 -
Trigger Event:
release
-
Statement type: