Skip to main content

SynKit

PyPI version Conda version Docker Pulls Docker Image Version License Release Last Commit Zenodo CI Stars

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.

SynKit graphical abstract

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

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

synkit-1.6.2.tar.gz (999.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synkit-1.6.2-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

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

Hashes for synkit-1.6.2.tar.gz
Algorithm Hash digest
SHA256 05ae73985fa688c4ceeb7da18577013d96beacfbf9e1784e01f23198c2cb13fe
MD5 2d624b5d7ea3e1511eaf1413d6b8c2b7
BLAKE2b-256 d58df0324aa761487db914772baff986bcdac2b8592dd0b8efc173c1b91627bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for synkit-1.6.2.tar.gz:

Publisher: publish-package.yml on TieuLongPhan/SynKit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for synkit-1.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 70a63b5fe931ea6da7eef0f5f11619264f2e1c134f15ec1f74e10c2dce2f71aa
MD5 75940ea5ebb05fea6158873d8a6ddbe1
BLAKE2b-256 35fc08f2a37b64cae235ef4fdd3e2f390420ff586175f1d7cef21180b92598e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for synkit-1.6.2-py3-none-any.whl:

Publisher: publish-package.yml on TieuLongPhan/SynKit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.6.2 This release

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.2

2 files

1.3

2 files

1.2.2

2 files

1.2

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.1

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page