Changelog#
Version 1.4.0#
Highlights
Added the Lewis State Graph (LSG) framework for
SynReactor. LSG templates carrylone_pairs,radical,valence_electrons,sigma_order,pi_order, andkekule_orderso the NetworkX reactor can rewrite from explicit valence-state information while keeping the legacytypesGHpath available.Added graph-native functional-group detection under
synkit.Graph.FG. The detector works directly on SynKit molecularnetworkxgraphs and provides a SMILES convenience API returning both the graph and detected(name, atom_indices)labels.Added compact MTG and visualization helpers for LSG/ITS and MTG timeline inspection. The modern Vis API now covers molecule graphs, reaction panels, ITS-only drawings, Lewis-state labels, and MTG step/timeline panels.
Lewis State Graph reactor
LSG matching now uses explicit valence-state fields for new-mode templates: element, charge, lone-pair count, radical count, and bond changes represented by
sigma_order/pi_order/kekule_order.Product charge recomputation is driven from Lewis-state accounting in new-mode rewrites, with
kekule_order = sigma_order + pi_orderused instead of aromaticordervalues.Hydrogen handling was tightened for explicit-H reaction centers, implicit-H templates, and simple
H-Htransfer cases.Atom-map preservation for LSG-reactor SMARTS output was fixed by using graph node identity where the template does not carry original AAM.
Real-case regression tooling was added around the first smart-database fixture, batch round trips, and previously failing LSG rewrite examples.
Functional groups
Added
FunctionalGroupDetector,FunctionalGroupRegistry,FunctionalGroupAudit, andsmiles_to_graph_and_functional_groups.Added hierarchical family handling so more specific labels such as
carboxylic_acidsuppress generic nested labels such ascarbonylwhen appropriate.Added aromatic ring-system detection, selected fused heteroaromatic public names, and transform-relevant families across carbonyl/acyl, oxygen, nitrogen/C=N, sulfur, boron, silicon, and phosphorus chemistry.
Replaced the previous
fgutilsusage in tautomerization support with the SynKit-native functional-group API.
MTG
MTG construction from RSMI strings now defaults to Lewis State Graph ITS, producing compact atom and bond timelines without
typesGH. Useits_format="typesGH"to request legacy string conversion.Reworked the MTG plan around LSG/ITS representation: invariant atom fields are stored once, while temporal fields store compact histories across mechanism snapshots.
Added round-trip coverage for converting reaction sequences to MTG and back to ordered ITS steps / composed ITS views.
Marked aromatic relabeling and partial-order mechanism DAGs as active design areas rather than solved MTG semantics.
Visualization
Added
draw_molecule_graph,draw_reaction_graph,draw_its_from_rsmi,draw_its_only,draw_mtg_graph, anddraw_mtg_stepsas the preferred modern rendering helpers.Added compact LSG/ITS labels for
kekule_ordertransitions and optionalsigma/pilabels that suppress unchanged components.Added selectable Lewis-state labels for charge, lone-pair, and radical changes.
Added Matplotlib
Aggsmoke tests for molecule, reaction, ITS, visual adapter, and MTG drawing paths.
Compatibility and known limits
Legacy ITS /
typesGHbehavior remains available for existing workflows.MØD-backed workflows remain separate from the new SynKit LSG reactor path.
Aromatic LSG matching is still conservative. Some aromatic false-positive or false-negative cases require a future aromatic-system relabeling policy rather than a local matcher tweak.
Functional-group fused positional isomers such as quinoline vs isoquinoline are not fully distinguished yet.
Infrastructure
Added
networkx>=3.3torequirements.txtso non-Linux CI jobs do not rely on the Linux-onlymodinstall to pull in NetworkX indirectly.
Version 1.1.1#
Bug fixes
Automorphism and AutoEst now prefer orbits with the largest anchor set.
Added
deduplicate_matches_with_anchor: anchor a connected component and deduplicate remaining components.
New features
CRNCanonicalizer (Bliss-style): reimplemented canonicalization using a Bliss-inspired strategy; ~10× faster on large CRNs.
WLCanonicalizer: Weisfeiler–Lehman–based approximate canonicalization for CRNs; fast orbit approximations for large/noisy networks.
Known issues
CRNAutomorphismmay not return fully correct automorphism groups in all cases.
Version 1.1.0#
Features
Lightweight CRN exploration (pure Python).
CRN property analysis utilities (stoichiometric summaries and structural checks).
CRN promoted to a dedicated submodule (
synkit.CRN).Approximate automorphism + MCS to speed up symmetry-aware computations.
Version 0.0.7#
Highlights
Refactored source-code structure into six primary submodules at the root level: IO, Chem, Graph, Rule, Synthesis, and Vis.
Added MØD‐free operation mode: functions requiring MØD now raise clear errors but fall back to pure‐Python implementations where available.
IO Module#
Exposed core I/O utilities directly in synkit.IO: chemical_converter.py, data_io.py, and debug.py.
Chem Module#
Introduced `CanonRSMI` for atom–atom mapping (AAM) canonicalization.
Moved `AAMValidator` into synkit.Chem.Reaction for consistency.
Graph Module#
Added `SynGraph` wrapper for reaction and molecule graphs.
New canonicalisation backends: - node‐type sort - Morgan‐prime hashing - Weisfeiler–Lehman refinement
Renamed “Cluster” to Matcher; enhanced `GraphMatcher` and `SubgraphMatch`.
Added `SubgraphSearchEngine` with three strategies: - component‐aware - arbitrary - backtracking
Introduced `SING` and `TURBOIS` for mapping multiple patterns in a single host graph.
Extended `GraphCluster` and `BatchClustering` to support both nx and mod backends.
Enhanced `WLHash` to hash lists of node/edge attributes.
Added `MTG` submodule for Mechanistic Transition Graphs (direct rule composition).
New `Hydrogen` submodule for reaction-center H-completion and `Context` for radius-based expansion.
Rule Module#
Introduced `SynRule` wrapper supporting NetworkX graphs and GML.
Reorganized into three packages: - Apply (retro-prediction via partial composition) - Compose (rule composition) - Modify (rule editing and H-handling)
Provided non‐MØD fallbacks where possible.
Synthesis Module#
Divided into three submodules: - Reactor (nx via SynReactor; mod via MODReactor/MODAAM) - CRN (Chemical Reaction Network builder via MODCRN) - MSR (multi-step reaction pathfinder)
`SynReactor` now supports implicit‐H templates.
`MODCRN` wraps MØD for CRN generation; requires manual re-run for PDF summaries.
Vis Module#
Visualization tools organized under `synkit.Vis`: - `RXNVis` (reaction visualisation) - `RuleVis` (template/rule visualisation) - `GraphVisualizer` (generic graph editing & display)
Documentation#
Added comprehensive examples for each submodule.
Scaffolding for an API Reference page.