Skip to main content

SynEPD

SynEPD is a hierarchical database of polar organic reaction mechanisms. It combines curated atom-mapped reactions, the POLAR taxonomy, reaction-center (RC) and mechanistic-center (MC) templates, ITS graphs, and ordered electron-pushing diagram (EPD) arrows in SQLite and a web explorer.

SynEPD Explorer preview

Dataset

Item Count
Reactions 1,926
Molecules 2,277
RC templates 1,521
MC templates 1,540
EPD arrows 8,129
Taxonomy classes 939
Accepted RXNO/MOP links 218

An RC describes changed bonds. An MC extends its RC with the transition edges required by the curated electron flow. In the current release, 284 MC templates (18.44%) differ from their RC and 229 (14.87%) structurally extend it.

The corpus covers closed-shell, paired-electron mechanisms. Concerted reactions are included when their electron movement is expressible with two-electron arrows. Radical and single-electron-transfer mechanisms are excluded because the current vocabulary has no fishhook-arrow representation.

Quick Start

Create the Conda environment and install the package:

conda env create -f env.yaml
conda activate synepd
python -m pip install -e ".[dev]"

Start the local explorer:

./run_server.sh

Then open http://127.0.0.1:8000/. Versioned API routes are available under /api/v1; /api remains as a compatibility alias.

Query from Python

from synepd.query import SynEPDQuery

with SynEPDQuery("data/epdb.sqlite") as query:
    result = query.epd("CC[O-].[NH4+]>>CCO")
    for arrow in result.get("arrows", []):
        print(
            arrow["arrow_index"],
            arrow["arrow_type_code"],
            arrow["source_atoms"],
            "->",
            arrow["target_atoms"],
        )

The same interface supports molecule, taxonomy, arrow-sequence, RC-template, ITS/RC/MC, and RXNO/MOP queries. SynEPDQuery.from_release(...) resolves a tagged release through the zenodo, github, or auto sources.

Build and Validate the Data

Build the release database:

PYTHONPATH=. python -m synepd.construct.build_release_db

Rebuild or check the external RXNO/MOP linkage:

python scripts/build_rxno_mapping.py --obo data/rxno.obo
python scripts/build_rxno_mapping.py --check --obo data/rxno.obo

Verify the checked-in release artifact:

python -m synepd.construct.release_manifest data/epdb.sqlite \
  --verify data/release-manifest.json

Core release files are:

Path Purpose
data/polar.json Curated production reaction records
data/hierarchy.md POLAR taxonomy source
data/epdb.sqlite Built read-only release database
data/rxno_crosswalk.tsv SynEPD-to-RXNO/MOP linkage
data/release-manifest.json Version, counts, and checksums
synepd/web/static/data_arch.tex Editable database diagram source

SQLite contains the reaction, molecular, taxonomy, RC, MC, ITS, and EPD core. RXNO/MOP mappings remain versioned TSV/RDF artifacts and are resolved on demand instead of being duplicated in SQLite. Narrative curation notes and internal named-reaction relations are not exposed through the public schema.

Development Checks

python -m black --check --workers 1 synepd test
./lint.sh
./pytest.sh
python -m synepd.precheck.epd_verification --strict

The EPD command uses strict ordered electron-resource replay by default. It checks every intermediate state, charge propagation, locality, and the mapped product endpoint. Pass --legacy-editor only for compatibility comparisons with the historical endpoint-only check.

For a multi-worker deployment, run ./run_server.sh run --no-reload --workers 4 behind a reverse proxy. The bundled SQLite release is opened read-only; PostgreSQL is supported for horizontally scaled or write-heavy deployments.

License and Acknowledgment

The software is licensed under Apache License 2.0. Curated release data is distributed under CC BY 4.0 where stated in its metadata. See LICENSE.

This project received funding from the European Union's Horizon Europe Doctoral Network programme under Marie Skłodowska-Curie grant agreement No. 101072930 (TACsy).

Metadata

Release files for synepd 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for synepd 0.4.1
File Size Uploaded Provenance Actions
synepd-0.4.1.tar.gz 131.9 kB With provenance Details for synepd-0.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for synepd 0.4.1
File Interpreter ABI Platform Actions
synepd-0.4.1-py3-none-any.whl Python 3 none any Details for synepd-0.4.1-py3-none-any.whl

Total release size: 275.0 kB

Release files / synepd-0.4.1.tar.gz

Download URL synepd-0.4.1.tar.gz
Size 131.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4a6f818d46a10682806b2cd4647a96450715f0d870e011665c2add4620d9392b
BLAKE2b-256 checksum
How to use checksums
90354d378cf3dc88f6b010a442db7f6f5cbeaa963ba5c0b750fd375219d75f87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / synepd-0.4.1-py3-none-any.whl

Download URL synepd-0.4.1-py3-none-any.whl
Size 143.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ef2db5303dfc94d56a36859b524f1cf3a9b9da77a89cc97f40a8b0c8e48d1ff
BLAKE2b-256 checksum
How to use checksums
e24a14950524f41962a5ba1c971019538ede16c6a2c85a5f77491be2958cc3d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for synepd 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for synepd-0.4.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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