Software

I develop and contribute to open-source tools that grow out of my research. I aim to make them useful beyond my own projects. You can find all public code on my GitHub; code accompanying specific papers is linked under publications.

Stork
Core development & maintenance; originally authored and released by F. Zenke

Stork is a PyTorch-based library for training spiking neural networks (SNNs) with surrogate gradients. It was written to facilitate research on SNNs and supports various neuron models (LIF, adLIF, …), convolutional layers, smart initialization defaults, biological constraints such as Dale’s law and much more.

See the GitHub docs for details and some runnable example notebooks.

Stork
SRPlasticity
Original prototype and first package version; ongoing development & maintenance by John Beninger & Jade Poirier (uOttawa)

SRPlasticity is a Python package implementing Spike Response Plasticity (SRP) — a linear–nonlinear cascade model of short-term synaptic dynamics.

The package provides the SRP model, some example notebooks & utilities for parameter inference from electrophysiological data.

Note: I am not actively maintaining this package, but the amazing John Beninger & Jade Poirier at uOttawa are! They published a fantastic google colab tutorial and accompanying protocol paper on how to use this package with your own data.

SRPlasticity
SpiffyPlots
Development and maintenance

SpiffyPlots is a lightweight add-on for matplotlib that helps create publication-ready figures – especially multi-panel layouts.

It provides user-friendly, flexible layout classes (a gentler GridSpec) and very opinionated stylesheets that override default colors and aesthetics. I use it daily and might add features in the future.

SpiffyPlots
ADPROCLUS
Original prototype; package development & CRAN maintenance by Henry Heppe

ADPROCLUS is an R package for additive profile clustering (overlapping clustering of objects across variable subsets). It includes the standard and low-dimensional variants, plus helpers for model selection and plotting.

The CRAN package is developed and actively maintained by Henry Heppe — see CRAN and his the repo linked below for installation and examples.