Examples¶
The examples/ directory contains runnable scripts that demonstrate synamine's features using the Sepsis Cases event log.
Running examples¶
All examples are run from the repository root:
uv run python examples/dfg_trie_dendrogram/dfg_trie_dendrogram.py
uv run python examples/discovery_algorithms/discover.py
uv run python examples/statistics/process_statistics.py
DFG & Variant Trie Dendrogram¶
Directory: examples/dfg_trie_dendrogram/
Demonstrates DFG discovery (full and noise-filtered) and variant trie dendrogram visualization with pruning and label strategies.
import synamine
log = synamine.read_xes("examples/data/sepsis_cases.xes")
# Full DFG
dfg = synamine.discover_dfg(log)
synamine.save_visualization(dfg, "output/dfg_full.png")
# Noise-filtered DFG
dfg_filtered = synamine.discover_dfg(log, noise_threshold=0.1)
synamine.save_visualization(dfg_filtered, "output/dfg_filtered.png")
# Variant trie with pruning
trie = synamine.discover_variant_trie(log)
pruned = trie.prune(min_count=15)
synamine.save_visualization(pruned, "output/trie.png", label_strategy="truncate")
Discovery Algorithms¶
Directory: examples/discovery_algorithms/
Compares all discovery algorithms side by side on the same log: Alpha Miner, Heuristic Miner, Inductive Miner, and DFG-to-Petri-Net conversion.
import synamine
log = synamine.read_xes("examples/data/sepsis_cases.xes")
# Alpha Miner
pn_alpha = synamine.discover_petri_net(log, algorithm="alpha")
# Heuristic Miner
pn_heuristic = synamine.discover_petri_net(log, algorithm="heuristic")
# Inductive Miner
pt = synamine.discover_process_tree(log)
# DFG-to-Petri-Net
dfg = synamine.discover_dfg(log)
pn_dfg = synamine.convert_dfg_to_petri_net(dfg)
Process Statistics¶
Directory: examples/statistics/
Demonstrates all 11 statistics functions and 6 chart visualizations:
- Basic statistics -- activity frequencies, start/end activities, top variants
- Case statistics -- case lengths and case durations
- Activity durations -- sojourn times per activity
- Waiting times -- inter-event duration distribution
- Rework analysis -- activities that repeat within cases
- Charts -- saves 6 PNG charts to
output/
import synamine
log = synamine.read_xes("examples/data/sepsis_cases.xes")
# Statistics
activities = synamine.get_activities(log)
case_lengths = synamine.get_case_lengths(log)
rework = synamine.get_rework(log)
# Charts
synamine.plot_activity_frequencies(log, path="output/activity_frequencies.png")
synamine.plot_case_durations(log, path="output/case_durations.png")
synamine.plot_cases_over_time(log, path="output/cases_over_time.png")