You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changelog
[1.5.0] - 2026-07-10
🚀 Highlights
Modular Atom-to-Atom Mapping: Replaced the monolithic wl_mapper module with the new synkit.Chem.Reaction.Mapper package. Its main public entry point, AAMapper, unifies WL/SLAP mapping, optional exact reaction-centre refinement, symmetry-distinct mapping enumeration, and mapping certificates.
Electron-Flow Interoperability: Added bidirectional conversion between EF-SMIRKS and Electron-Pushing Descriptors (EPD), including typed Lewis-state-aware epd_lw records.
Mechanistic Trajectory Visualization: Added an integrated workflow to render completed atom mapping, electron flow, product structure, and ITS bond changes in a single publication-ready trajectory figure.
Mapping Quality Controls: Added ITS hashing, mapped-reaction deduplication, electron-balance checks, and hydrogen-aware mapping ranking.
🗺️ Atom-to-Atom Mapping
New Mapper Package: Introduced synkit.Chem.Reaction.Mapper as the modular home for mapping workflows. New code should import public mapper classes from this package.
Unified AAMapper API:AAMapper combines:
WL/SLAP-based atom-to-atom mapping
Optional exact reaction-centre refinement
Symmetry-distinct mapping enumeration
Mapping certificates for inspection and reproducibility
Mapped-Reaction Hashing and Deduplication: Added ITS-based hashing and deduplication utilities for mapped reactions.
Hydrogen-Aware Ranking: Mapping candidates can now be ranked using hydrogen-count-aware criteria.
Reaction-Centre Explicit Hydrogens: Added reaction-centre-only explicit-H output, avoiding unnecessary explicit hydrogens elsewhere in the mapped reaction.
SciPy Dependency:scipy>=1.14.0 is now required because WL/SLAP mapping and exact refinement use SciPy’s linear-assignment solver.
🧬 EF-SMIRKS ↔ Electron-Pushing Descriptors
Bidirectional Conversion: Added ef_smirks_to_epd and epd_to_ef_smirks.
Forward Conversion:ef_smirks_to_epd preserves electron-flow-code atom maps, completes atom-to-atom mapping where necessary, and returns both generic EPD and typed epd_lw records.
Reverse Conversion:epd_to_ef_smirks reconstructs EF-SMIRKS from complete AAM together with either generic EPD or typed epd_lw input.
Public Imports: Both helpers are available from synkit.IO and synkit.IO.conversion.
early_stop for efficient first-valid-match workflows
full for exhaustive execution
Pluggable MCS Matching: Rule application can now use either exact or approximate maximum-common-substructure matching.
Wildcard-Aware ITS Fusion: Improved fusion of ITS fragments containing wildcard atoms, supporting more flexible reaction-rule composition and application.
🎨 Electron-Pushing Visualization
EF-SMIRKS-to-EPD Workflow: Added a MechanismVisualizer workflow that converts EF-SMIRKS into EPD and renders the resulting mechanistic trajectory.
Integrated Trajectory Figures: A single figure can now include completed atom-to-atom mapping, typed epd_lw electron flow, product structure, and ITS bond changes.
Compact by Default: Step-number bubbles, ITS bond-pair labels, and electron-state badges are now opt-in to keep report-ready figures compact by default.
📚 Documentation and User Interface
Versioned EF-SMIRKS/EPD Figure: Added a versioned documentation figure illustrating EF-SMIRKS, EPD conversion, typed electron flow, and the resulting mechanistic trajectory.
Direct API Examples: Added examples demonstrating direct use of conversion helpers from synkit.IO.
Dark-Mode Improvements: Improved navigation contrast in dark mode and added a dedicated dark-theme SynKit logo.
⚠️ Compatibility
Backward-Compatible Validator Import:AAMValidator remains available through synkit.Chem.Reaction to preserve existing user workflows.
Recommended Migration Path: New mapping implementations should import public APIs from synkit.Chem.Reaction.Mapper.
Former wl_mapper Module: The former monolithic mapper module has been superseded by the new modular mapper package.