Example: van_rossum_metric (misc)ΒΆ
Example of how to use the van Rossum metric.
The VanRossumMetric function, which is defined as a monitor and therefore works online, computes the metric between every neuron in a given population. The present example show the concept of phase locking: N neurons are driven by sinusoidal inputs with different amplitude.
Use: output=VanRossumMetric(source, tau=4 * ms)
source is a NeuronGroup of N neurons tau is the time constant of the kernel used in the metric
output is a monitor with attribute distance which is the distance matrix between the neurons in source
from brian import *
from time import time
tau=20*ms
N=100
b=1.2 # constant current mean, the modulation varies
f=10*Hz
delta =2*ms
eqs='''
dv/dt=(-v+a*sin(2*pi*f*t)+b)/tau : 1
a : 1
'''
neurons=NeuronGroup(N,model=eqs,threshold=1,reset=0)
neurons.v=rand(N)
neurons.a=linspace(.05,0.75,N)
S=SpikeMonitor(neurons)
trace=StateMonitor(neurons,'v',record=50)
van_rossum_metric=VanRossumMetric(neurons, tau=4 * ms)
run(1000*ms)
raster_plot(S)
title('Raster plot')
figure()
title('Distance matrix between spike trains')
imshow(van_rossum_metric.distance)
colorbar()
show()