High-performance Julia package for online learning of binomial synaptic release models
Author Theoretical-Neuroscience-Group
8 Stars
Updated Last
7 Months Ago
Started In
March 2021


ci Codecov

This is a package for performing filering and active learning for a binomial synaptic model using nested particle filters. Performance is achieved by providing a CUDA GPU implementation, but the code also runs (much more slowly) on the CPU.


This package needs at least Julia 1.6.1. In a Julia REPL, activate an environment and type:

]add BinomialSynapses


User API is work in progress. This is a minimal working example for running the nested particle filter on synthetic data and producing a plot of the observation trace and the posterior histograms.

using BinomialSynapses

sim = NestedFilterSimulation(
        10, 0.85, 1.0, 0.2, 0.2,   # ground truth parameters
        1:20,                      # parameter ranges for filter
        LinRange(0.05, 0.95, 100), # .
        LinRange(0.10, 2.00, 100), # .
        LinRange(0.05, 2.00, 100), # .
        LinRange(0.05, 2.00, 100), # .
        2048, 512,                 # outer and inner number of particles
        12                         # jittering kernel width

times, epsps = run!(sim, T = 1000)

posterior_plot(sim.fstate, times, epsps, truemodel = sim.hmodel)


  • On the nested particle filter: Crisan, Dan, and Joaquin Miguez. "Nested particle filters for online parameter estimation in discrete-time state-space Markov models." Bernoulli 24.4A (2018): 3039-3086.
  • On the model of stochastic synapse: Gontier, Camille, and Jean-Pascal Pfister. "Identifiability of a Binomial Synapse." Frontiers in computational neuroscience 14 (2020): 86.

Used By Packages

No packages found.