Spike-stream feature extraction for spiking neural systems
SpikeStream.jl is focused on feature extraction from spike-event streams.
spike_count(spike_times; t_start, t_end)spike_density(spike_times; t_start, t_end)isi_stats(spike_times)detect_bursts(spike_times; max_isi, min_spikes)windowed_spike_features(spike_times; window_size, step)normalized_feature_vector(spike_times)
spike_count→ integer>= 0spike_density→ real>= 0isi_stats→ all fields non-negativedetect_bursts→ vector of index ranges (possibly empty)windowed_spike_features:count >= 0density >= 0isi_mean >= 0isi_cv >= 0burst_count >= 0
normalized_feature_vector→ length-4 vector in[0, 1]
SpikeStream.jl owns spike-stream feature extraction only. Kinetic / signal-dynamics APIs live in the Rust sibling Limen-Neural/kinetic-signals.
| Area | Owner | Notes |
|---|---|---|
spike_count, spike_density, isi_stats, detect_bursts, windowed_spike_features, normalized_feature_vector |
SpikeStream.jl | Public API of this package |
| Hurst exponent | kinetic-signals | Formerly transitional compute_hurst (removed) |
| Hawkes intensity | kinetic-signals | Formerly transitional compute_hawkes (removed) |
| Surprise / geometric Brownian motion (GBM) | kinetic-signals | Formerly transitional compute_gbm_surprise (removed) |
| Entropy | kinetic-signals | Not part of SpikeStream.jl |
| Volatility | kinetic-signals | Not part of SpikeStream.jl |
- No foreign-function interface (FFI) between SpikeStream.jl and kinetic-signals today.
- Spike fixtures for cross-package tests live in this package:
test/fixtures/spike_vectors.json(LIM-41). - Window note: with explicit
t_end,windowed_spike_featuresuses half-open windows[t_start, t_end);spike_count/spike_densityuse inclusive ends. Fixtures encode this. - kinetic-signals
shared_vectors.jsonis Rust-only (not consumed by SpikeStream.jl).
using SpikeStream
spike_times = [0.001, 0.005, 0.009, 0.040, 0.042, 0.044, 0.090]
count = spike_count(spike_times)
density = spike_density(spike_times; t_start=0.0, t_end=0.1)
stats = isi_stats(spike_times)
bursts = detect_bursts(spike_times; max_isi=0.004, min_spikes=3)
windows = windowed_spike_features(spike_times; window_size=0.03, step=0.03)
vec = normalized_feature_vector(spike_times; t_start=0.0, t_end=0.1, max_density=200.0)using Pkg
Pkg.add("SpikeStream")Licensed under either of:
- MIT License (LICENSE-MIT)
- Apache License 2.0 (LICENSE-APACHE)
at your option.
