# Synkit

> SynKit

- Skill: `kdevos12/synkit` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add kdevos12/synkit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kdevos12/synkit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Kdevos12 (https://skillmd.com/u/kdevos12)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kdevos12/synkit

---


# SynKit

Graph-based Python toolkit for reaction informatics: ITS graph construction, canonicalization, AAM validation, DPO rule extraction, CRN analysis, and synthesis planning.

**Paper:** doi:10.1021/acs.jcim.5c02123 | JCIM 2025

## When to Use This Skill

- Converting reaction SMILES → ITS graphs (NetworkX) → DPO rules (GML)
- Validating or comparing atom-to-atom mappings (AAMValidator)
- Canonicalizing reaction SMILES (CanonRSMI) or ITS graphs (GraphCanonicaliser)
- Clustering reactions by structural similarity (WL graph hash)
- Extracting and composing reaction rules (DPO formalism)
- Analyzing chemical reaction networks (Feinberg deficiency theory, Petri nets)
- Detecting autocatalysis, siphons, traps in reaction networks
- Planning synthetic routes via rule composition (SynReactor)
- Building reaction databases or curating USPTO/ChEMBL reaction data

## Core Concept: ITS Graph

The **Imaginary Transition State (ITS)** graph merges reactant and product graphs into a single labeled multigraph:
- Nodes: atoms with attributes (symbol, charge, radical, hybridization, H count)
- Edges: bonds with attributes (bond type, `change` flag: formed / broken / unchanged)

ITS ≡ CGR (Condensed Graph of Reaction) — same structure, different naming tradition.

## Quick Start

```python
from synkit.IO import load_reaction_smiles
from synkit.Graph import ITSConstruction
from synkit.Chem import CanonRSMI, AAMValidator

# 1. Parse reaction SMILES → ITS graph (NetworkX)
rxn_smiles = "[CH3:1][OH:2].[Na:3][H:4]>>[CH3:1][O:2][Na:3].[H:4][H:5]"
its = ITSConstruction.from_reaction_smiles(rxn_smiles)

# 2. Canonicalize the reaction SMILES
canon = CanonRSMI(rxn_smiles).canonicalize()

# 3. Validate atom-atom mapping
valid = AAMValidator(rxn_smiles).is_valid()
```

## Router — What to Read

| Task | Reference |
|------|-----------|
| Load reactions, format conversion (SMILES ↔ ITS ↔ GML), data I/O | `references/io-conversion.md` |
| Canonicalization (CanonRSMI), AAM validation, Reaction class | `references/chem-standardization.md` |
| ITS construction, MTG, graph canonicalization, WL hashing, subgraph search | `references/graph-its.md` |
| DPO rules, GML format, rule composition, SynReactor forward/retro | `references/rule-dpo.md` |
| CRN building, Feinberg deficiency theory, Petri nets, autocatalysis | `references/crn-analysis.md` |
| Synthesis planning, route construction, pathway analysis | `references/synthesis-planning.md` |

## Key Submodules

| Module | Role |
|--------|------|
| `synkit.IO` | Reaction SMILES parsing, SMILES ↔ ITS ↔ GML conversion |
| `synkit.Chem` | `CanonRSMI`, `AAMValidator`, `Reaction` standardization |
| `synkit.Graph` | `ITSConstruction`, `GraphCanonicaliser`, WL hash, subgraph search |
| `synkit.Rule` | DPO rules, GML handling, rule composition |
| `synkit.Synthesis` | Forward/retro prediction, route exploration |
| `synkit.CRN` | CRN construction, Feinberg theory, Petri-net analysis |
| `synkit.Vis` | Reaction and mechanism visualization |

## Conversion Pipeline

```
Reaction SMILES (atom-mapped)
    │
    ▼ IO / Graph.ITSConstruction
ITS Graph (NetworkX)         ← cluster, hash, validate
    │
    ▼ Graph.GraphCanonicaliser
Canonical ITS Graph          ← canonical form independent of atom ordering
    │
    ▼ Rule module
DPO Rule (GML format)        ← compose, apply, store
```

All conversions are **lossless** for balanced, atom-mapped reactions.
Caveats: stereochemistry is omitted; explicit H at reaction centers required for GML → SMILES reversion.

## Installation

```bash
pip install synkit          # core (RDKit + NetworkX)
pip install synkit[all]     # full (+ transformers for RXNMapper)
# Python ≥ 3.11 required
```

## Related Skills

- `rdkit` — molecule preprocessing before SynKit ingestion
- `torchdrug` — retrosynthesis with GNNs (complementary ML approach)
- `deepchem` — molecular ML when rule-based approach insufficient

