Recently I had to simulate spike trains of neuron which fires as a Poisson processes. Since code in neuroscience is mostly written in Matlab, I will stick to this.
now lets plot the interspike interval histogram and see
if the neuron is indeed poissonian.
we've got:
as you can see, the TIH follows exponential distribution,
hence the neuron is indeed Poisonnian.
We can also calculate the coefficient of variation:
%rate of firing rate = 50; %dt in milliseconds dt = 1; %total time of simulation 60 seconds totalTime = 60000; %declaration of variables spikeTimes = []; spikeTrain = []; %loop throough whole time for t = 1 : dt : totalTime, %r*dt is the poisson distribution %of firing in dt. if the distribution is %greater the uniform sampling, %a spike is fired and its time %is kept. if rate * dt / 1000 >= rand(1), spikeTimes(end + 1) = t; end end %convert the vector of spike times %to vector of spike trains. spikeTrain(spikeTimes) = 1;
now lets plot the interspike interval histogram and see
if the neuron is indeed poissonian.
isi = diff(sp_times); maxi = ceil(max(isi) / 100) * 100; bins = 0.5 : maxi - 0.5; isiHist = hist(isi, bins); bar(bins, isiHist / max(isiHist), 1);
we've got:
as you can see, the TIH follows exponential distribution,
hence the neuron is indeed Poisonnian.
We can also calculate the coefficient of variation:
%for calculating the Cv we need the interspike intervals cv = std(isi) / mean(isi);
No comments:
Post a Comment